美文网首页
Django2 改了什么看 & 复习Django

Django2 改了什么看 & 复习Django

作者: 1f872d1e3817 | 来源:发表于2018-04-12 16:42 被阅读0次

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

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

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

    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 %} 标签代替它,如

    <li><a href="{% url 'polls:detail' question.id %}">{{ question.question_text }}</a></li>
    

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

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

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

    <input type="radio" name="choice" id="choice{{ forloop.counter }}" value="{{ choice.id }}" />
    

    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

          本文链接:https://www.haomeiwen.com/subject/uqkfkftx.html