只要不混着用,有名分组和无名分组支持多个相同类型的传参 反向解析: 试想一个场景,你有200多个a标签,href都指向index/,有一天在urls里面index改为了new_index,那么你只能手动改变...通过名字反向推导出页面文件,类似于字典 前端反向解析 {% url 'add' %} # {% url '放urls.py中路由与视图函数的name的值' %} ? ?...无名分组的反向解析 前端反向解析 {% url 'add' 1 %} # {% url '放urls.py中路由与视图函数的name的值' %} ?...}}/ edit/{{user_obj.pk}}/ 路由分发(include): 总路由不再直接做路由与视图函数的对应关系,而是将获取的路由分发给下面的app去处理对应关系 每一个app下都可以新建自己的...的区别(了解) 1.0里面的url对应django2.0里面re_path django2.0里面的path第一个是精准匹配(你怎么写的,我就怎么匹配) django1.0版本中匹配到的参数都是字符串类型
命名URL和URL反向解析 在使用Django 项目时,一个常见的需求是获得URL的最终形式,以用于嵌入到生成的内容中(视图中和显示给用户的URL等)或者用于处理服务器端的导航(重定向等)。...获取一个URL 最开始想到的信息是处理它视图的标识(例如名字),查找正确的URL 的其它必要的信息有视图参数的类型(位置参数、关键字参数)和值。...第二种方式叫做反向解析URL、反向URL 匹配、反向URL 查询或者简单的URL 反查。...Ppk>\d+)/$', views.detail, name='detail') ] 现在,我的两个app中 url名称重复了,我反转URL的时候就可以通过命名空间的名称得到我当前的URL。...', kwargs={'pk':11}) 这样即使app中URL的命名相同,我也可以反转得到正确的URL了。
Android设备有Google Assistant 和一个名为“语音输入”的语音转文本工具,可以与谷歌文档一起使用。...Trint公司提供基于AI的软件,用于转录录制的音频,能够在几分钟内以低成本返回转录文本,正确率达到98%。 但是,转录一个政治家的言论是另外一回事。...“Trint不是一个听写软件,而是一种利用大量训练数据工作的语音转文本技术,”Trint公司CEO兼创始人Jeff Kofman说。人类是这个等式的一部分。...他补充说:“Trint是一个人机混合模型:我们突破了AI技术的界限,让人类在需要的时候做最后一步工作。” 最近,Trint设立了一个挑战,目的是看看哪些著名的政治家是AI机器人最容易理解的。...Ted Cruz由于有很重的德州口音,排在第13位。 特朗普以97.89%排在第11位。
URL的反向解析 如果在视图、模板中使用硬编码的链接,在urlconf发生改变时,维护是一件非常麻烦的事情 解决:在做链接时,通过指向urlconf的名称,动态生成链接地址视图:使用from django.urls...要知道Django不会帮你做这个,这个需要自己来写一个跳转方法: 具体思路是,在 views.py 写一个跳转的函数: from django.http import HttpResponseRedirect...{'pk':11}) {% url 'app01:detail' pk=12 %} django中的路由系统和其他语言的框架有所不同,在django中每一个请求的url都要有一条路由映射,这样才能将请求交给对一个的...,一般的,我们做网站有一些通用的部分,比如 导航,底部,访问统计代码等等 可以写一个 base.html 来包含这些通用文件(include) 母板:{% block title %}{% endblock...,当再次访问的时候,网址会自动变成 /jiafa/4/5/ 还可以使用 as 语句将内容取别名(相当于定义一个变量),多次使用(但视图名称到网址转换只进行了一次) {% url 'some-url-name
一 URL配置 Django 1.11版本 URLConf官方文档 URL配置(URLconf)就像Django 所支撑网站的目录。它的本质是URL与要为该URL调用的视图函数之间的映射表。...,说明什么,说明是不是所有的app都在使用它,如果你一个项目有10个应用,每个应用有100个url,那意味着你要在urls文件里面要写多少条url对应关系,并且所有的app的url都写在了这一个urls...就像我现在输入一个http://127.0.0.1:8000来查看网站的首页,怎么办,也就是说我后面不加任何路径,就看你网址的首页,怎么办,一般网站的根路径都是网站的首页,对不对 ? ...Ppk>\d+)/$', views.detail, name='detail') ] 现在,我的两个app中 url名称重复了,我反转URL的时候就可以通过命名空间的名称得到我当前的URL。...detail', kwargs={'pk':11}) 这样即使app中URL的命名相同,我也可以反转得到正确的URL了。
Django REST框架构建Web API。...Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。...HyperlinkedIdentityField 用超链接的方式有个明确的指向,models 序列化的字段由外键变为超链接的关联形式允许直接通过 pk 跳转到 api 页面。...pk)可以不写,反向解析有名分组的名字。...:pk>/', ArticleDetailView.as_view(), name='article_detail'), path('categories/int:pk>/', CategoryDetailView.as_view
P\d{1, 2})/$', view.hours_ahead, name="time_ahead") ] reverse() 在配置 url 时候的大用处 # 假设我们有个网址为 192.168...为传入的参数值 return reverse('blog:post_detail', kwargs={'pk': self.pk}) Python 正则常用语法 ?...reversed 使得该列表被反向迭代 eg: {% for s in s_list reversed%} 执行循环之前通常先检测列表的大小,因此 for 标签支持一个可选的 {% empty %}...分句 每个 {% for %} 循环里有一个称为 forloop 的模板变量,这个变量存在一些表示循环进度信息的属性,模板解析器碰到{% endfor %}标签后,forloop就不可访问了 forloop.counter...,父类已经关闭则子类也关闭 5.django 常用内置模版过滤器 模板过滤器是在变量被显示前修改它的值的一个简单方法,以 "|" 拼接,过滤器的参数跟随冒号之后并且总是以双引号包含,例如 {{ value
使用 Django 的模型,都是 django.db.models.Model 类的子类。 每个类将被转成数据库表。 每个字段由 django.db.models.Field 子类转成数据库的列。...模型之间的关系使用 ForeignKey 字段。 位置参数 related_name 用于引用关联的模型。 related_name 参数将用于创建反向关系。...在 论坛的回帖模型中,related_name = "+",不需要这种反向关系,不需要关系用户修改过哪些帖子。...import login_required from django.views.generic import UpdateView, ListView from django.utils import...= 'post_pk' context_object_name = 'post' # 其他用户可以编辑所有帖子的问题 def get_queryset(self):
import models 第二种方法: 直接新建一个名称任意的py文件,在里面写上上面的配置 1.1.1Django终端打印SQL语句的配置 在settings里面随便找个地方复制下面的代码即可在终端看到...filter查询出来的结果是一个queryset对象,queryset对象有以下两个特点: 1.可以无限制的调用queryset的方法 2.可以对象点query的方法查看当前结果内部对应的SQL语句 res...(pk=1).first() res1 = models.Publisher.objects.filter(pk=1).last() #会获取到查找到的第一个对象、最后一个对象 1.2.5计数 count...) 删除一条记录 models.Book.objects.filter(pk=5).delete()#默认是级联删除级联更新,就是这张表删除了与之有外键关系的表也会跟着变化 1.5多对多字段数据的增删改查...(pk=2).first() book_obj.authors.clear() #清空指定的书籍在第三张表中的所有记录 1.6跨表查询 1.6.1正反向查询 正反向查询:外键在书那里,由书查出版社就是正向
上一节的注册中,使用了 form 表单,在 标签中,定义了 method 属性告诉浏览器想如何与服务器通信。...GET 用于从服务器请求数据,每当点击了一个链接或者直接在浏览器中输入一个网址时,就创建了一个 GET 请求。 POST 用于想更改服务器上的数据,每次发送数据给服务器都会导致资源状态变化。...Django 使用 CSRF Token 保护所有的 POST 请求,这是避免外部站点或者应用程序向服务器的应用程序提交数据的安全措施。...应用程序每次接收一个 POST 时,都先检查 CSRF Token,如果这个 request 没有 token,或者这个 token 是无效的,它就会抛弃提交的数据。...=Count('posts') - 1) return queryset ③ 新建话题 Django 内置的视图装饰器,如果用户没有登录,将被重定向到登录页面。
我的理解是,像超文本一样携带一个地址,可以寻址定位信息,如超文本的link属性。...rel表示这个API与当前网址的关系(collection关系,并给出该collection的网址),href表示API的路径,title表示API的标题,type表示返回类型。...HyperlinkedModelSerializer 在Web API设计中,一般有以下几种方式来表示实体之间的关系: 主键 超链接 关系实体(the related entity),唯一标识符字段(a...:pk>/', views.SnippetDetail.as_view(), name='snippet-detail'), path('snippets/int:pk>/highlight/...', 'PAGE_SIZE': 10 } 东方说 我之前是在学SpringBoot的时候了解过RESTful API的超链接API,文章开头的那一段介绍就是当时写的笔记,DRF提供了HyperlinkedModelSerializer
在RESTful架构中,每个网址代表一种资源(resource),所以网址中不能有动词,只能有名词,而且所用的名词往往与数据库的表格名对应。...举例来说,有一个API提供动物园(zoo)的信息,还包括各种动物和雇员的信息,则它的路径应该设计成下面这样。...常用的HTTP动词有下面五个(括号里是对应的SQL命令)。 GET(SELECT):从服务器取出资源(一项或多项)。即获取数据 POST(CREATE):在服务器新建一个资源。...animal_type_id=1:指定筛选条件 参数的设计允许存在冗余,即允许API路径和URL参数偶尔有重复。比如,GET /zoo/ID/animals 与 GET /animals?...Github的API就是这种设计,访问api.github.com会得到一个所有可用API的网址列表。
,就是正向 反向:从没有外键表去查另外相关联的表,就是反向 口诀: 正向查询按外键字段 反向查询按表名小写 注意: 正向:属性名 反向:小写类名加 _set 反向查询的时候查询的对象可能有多个的情况加_..._set,查询的对象只有一个的情况不需要加 基于对象的跨表查询 '''子查询思路''' 1、先查出一个对象 2、基于对象正反查 '''基于对象的跨表查询:正向''' 1.查询三国演义书籍对应的出版社名称...author = author_det.author print(author.name) # 李白 基于双下划线的跨表查询 上面的操作类似子查询,将上一个查询结果当作该次查询的条件使用,...聚合函数 aggregate() 是 QuerySet 的一个终止子句, 生成的一个汇总值,相当于 count(),使用 aggregate() 后,数据类型就变为字典,不能再使用 QuerySet...此时就需要Q函数来帮助我们去构造这些关系:与(&),或(|),非(~) 导入: from django.db.models import Q from django.db.models import
(可选)您还可以指定一个附加参数: basename- 用于所创建的 URL名称的基础。如果未设置,则将根据视图集的属性(如果有)自动生成基名。...上面的示例将生成以下 URL 模式: 网址模式: 名称:^users/$‘user-list’ 网址模式: 名称:^users/{pk}/$‘user-detail’ 网址模式: 名称:^accounts...将生成以下路由: 网址模式:^users/{pk}/set_password/$ 网址名称:'user-set-password' 默认情况下,URL 模式基于方法名称,URL 名称是方法名称和带连字符的方法名称的组合...如果不想为这两个值中的任何一个使用默认值,则可以改为向装饰器提供 and 参数。...上面的示例现在将生成以下 URL 模式: 网址路径:^users/{pk}/change-password/$ 网址名称:'user-change_password' 注意点: 默认情况下,创建的 URL
Category 类有一个属性 name,它是 models.CharField 的一个实例。...五、博客首页视图 5.1.Django处理HTTP请求 Web 应用的交互过程其实就是 HTTP 请求与响应的过程。...对于如何处理这些问题,Django 有其一套规定的机制。...Django 的做法是把不同的网址对应的处理函数写在一个 urls.py 文件里,当用户访问某个网址时,Django 就去会这个文件里找,如果找到这个网址,就会调用和它绑定在一起的处理函数(叫做视图函数...Ppk>[0-9]+)/$', views.detail, name='detail'), ] Django 使用正则表达式来匹配用户访问的网址。这里 r'^post/(?
然而,任何一个承受高负载的成熟项目都不可避免地需要进行优化。在本文中,我想谈谈优化Web项目代码的五种常用方法。虽然本文是以Django为例,但其他框架和语言的优化原则也是类似的。...通过使用这些优化方法,文中例程的查询响应时间从原来的77秒减少到了3.7秒。 ? 本文用到的例程是从一个我曾经使用过的真实项目改编而来的,是性能优化技巧的典范。...1.2 仅提供相关的数据 默认情况下,Django会从数据库中提取所有字段。但是,当表有很多列很多行的时候,告诉Django提取哪些特定的字段就非常有意义了,这样就不会花时间去获取根本用不到的信息。...有好几个可视化软件包可以将二进制文件转换为一些友好的可视化视图。本文将使用snakeviz。 这是上文一个请求的二进制分析文件的可视化图表: ?...然而,你应该做的第一件事是分析代码。 如果在这样一个简短的例子中,我可以将响应时间从77秒缩短到3.7秒,那么对于一个庞大的项目来说,就会有更大的优化潜力。
我说的不是那种用简单的单元测试就能捕获的普通错误。我说的是第一眼看上去好像没什么问题,但回头想起来却会觉得很明显的那种错误。...本文讲的是我不小心向几百位用户发送了付款到账的消息,实际上他们的钱还没到手的故事! 当你意识到自己犯了错误时是什么感觉 1故事 我们系统中有一个付款流程,是向商家和其他类型的用户付款用的。...对于大多数用户来说,付款流程是一件非常重要的事情,因为这就是他们获得报酬的途径。 创建一个付款操作 为了完成付款流程,我们有一个名为 PayoutProcess 的 Django 模型。...断言原子块 在 Django 3.2 之前,我们有一些用例需要确保某个函数在一个数据库事务中执行或者不执行。...触发一个异步任务而不是发送信号 这会遇到与信号相同的问题。批量流程失败时任务已被触发,消息将被发送出去。
二、常用的Web开发框架 Python有多个流行的Web开发框架,最常用的是Django和Flask。...Python中的Web框架通常提供与数据库集成的支持,如Django的ORM和Flask的扩展。 1. Django中的数据库集成 Django内置了ORM,可以方便地与数据库进行交互。...使用Django进行前端集成 Django的模板引擎可以与HTML、CSS和JavaScript无缝集成。以下是一个示例: Django应用 Gunicorn是一个高性能的Python WSGI HTTP服务器,Nginx是一个高性能的HTTP和反向代理服务器。...使用uWSGI和Nginx部署Flask应用 uWSGI是一个功能强大的应用服务器,Nginx是一个高性能的HTTP和反向代理服务器。
继上篇 django2.0入门教程第三节,介绍了django2.0的视图views和模板template, 本节介绍如何在前台进行投票。...构建一个简单的表单提交页 polls/templates/polls/detail.html {{ question.question_text }} {% if error_message...:pk>/', views.DetailView.as_view(), name='detail'), path('int:pk>/results/', views.ResultsView.as_view...(), name='results'), path('int:question_id>/vote/', views.vote, name='vote'), ] 使用pk>代替的讲解,先大致了解其作用即可,后续再逐个模块进行解析 源码下载 相关源码包 如果对django2.0教程感兴趣,请关注我的简书,持续更新中...