Django2 改了什么看 & 复习Django

1.URL改为from django.urls import include, path
以前用url,现在用path
其中,包含4个参数,必须的route、view,非必须的kwargs和name,为url起名可以在任意地方唯一的使用

当包括其它 URL 模式时你应该总是使用 include()admin.site.urls 是唯一例外。

2.URL里再也不用正则表达式了,不再有^&这些东西了,应该是已经打包好了,可以直接用这种方式

3.自己写的中间件,不可不继承任何objects了
目前发现其他中间件继承自from django.utils.deprecation import MiddlewareMixin,所以自己写的中间件也可以这么继承

4.外键models.ForeignKey(Question, on_delete=models.CASCADE),现在必须加on_delete参数
外键关系中,1调用n的一方,可以用one.n_set.all()调用,关键是_set。在模板中不加括号

5.在settings.py中,自定义installed_app要写成'yourapp.apps.YourappConfig',

6.在django.shortcuts 中
get_object_or_404() 相当于objects.get,否则404
get_list_or_404() 相当于objects.filter,否则404

7.去除模板中的链接地址硬编码,可以在urls.py中为url设置name,然后在模板中 {% url %} 标签代替它,如

  • {{ question.question_text }}
  • 这个标签的工作方式是在 polls.urls 模块的 URL 定义中寻具有指定名字的条目。你可以回忆一下,具有名字 'detail' 的 URL 是在如下语句中定义的:

    app_name = 'polls'  # 在上面加上命名空间
    # the 'name' value as called by the {% url %} template tag
    path('/', views.detail, name='detail'),
    

    8.模板中用{{ forloop.counter }}表用{% for %}循环到了第几次,如

    
    

    9.F()函数可以用来解决资源更新的竞争, Avoiding race conditions using F()

    1. admin界面可以自己定义,包括label,filter筛选过滤,搜索等
      https://docs.djangoproject.com/zh-hans/2.0/intro/tutorial07/

    2. Middleware 的执行顺序。在系统根据WSGI的 environ 构造 WSGIRequest 对象后,Middleware的process_request开始顺序执行,然后匹配URL后,具体view执行前(?),Middleware的process_view开始顺序执行,然后开始处理view,最后Middleware的process_response开始逆序执行

    你可能感兴趣的:(Django2 改了什么看 & 复习Django)