首页 > 其他 > 详细

django知识点小结

时间:2019-01-17 23:02:41      阅读:206      评论:0      收藏:0      [点我收藏+]

web应用

什么是web应用:
  网站:BS架构的应用程序:B是浏览器 S:server(实现了wsgi协议)+application(我们都在写这个)
  其实就是cs

  MVC和MTV(Django)
    -M:Model跟数据库打交道
    -V:模板
    -C:控制器
  MTV:(MTV也是MVC架构)
    M:models跟数据库打交道
    T:Templates模板层,对到MVC是V这一层
    V:视图,Views,路由+V是MVC的C

  HTTP协议
    略
  web框架
    application拆分
  a:server b:映射关系 c:模板渲染
    Flask:
    Django
    Tornado


第二篇:Djangon简介

第三篇:路由控制
一 Django中路由的作用
  请求的路径跟视图函数的映射关系
二 简单的路由配置
  四个参数:第一个正则表达式,第二个函数内存地址,第三个默认值,第四个是别名
三 分组
  无名:(正则表达式) 值分出来当位置参数传到视图函数
  有名:(?P<名字>正则表达式) 值分出来当关键字参数传到视图函数
四 路由分发
  url(r‘^app01/‘, include(‘app01.urls‘)),

五 反向解析
  就是根据别名,取到对应的url地址
  -视图层:reverse(‘别名‘args=())
  -模板层:{% url ‘别名‘ 参数 参数%}


六 名称空间
  -include(‘app01.urls‘,namespance=‘app01‘)
  -以后再反向解析:reverse(‘app01:别名‘args=())
七 django2.0版的path
  -path:路径是准确路径,不是正则表达式了
  -内置了5个转换器
  -自定义转换器

第四篇:视图层
  1 视图函数
  2 HttpRequest对象
  -GET
  -POST
  -FILES
  -path
  -method
  -get_full_path()
  -body
  3 HttpResponse对象
      -三件套

  4 JsonResponse
    -HttpResponse+json
  5 CBV和FBV
    -基于类的视图:
    -url配置 类名.as_view()
    -views.py
      class Test(View)
      dispatch:总的分发方法
      def get(self,request)
      rentun HttpRequest对象
  6 简单文件上传
    -前端页面:form-data
    -视图层:FILES(字典)根据key值取出来,拿到文件对象

问题:
-Post请求,是否可以在请求路径中加参数?可以,从GET中取,body的内容,从POST中取
-反向解析传参
举例:在模板层反向解析出要删除的图书路径
-url(r‘^dlbook/(?P<pk>\d+)‘, views.deletebook,name=‘deletebook‘),
-<td><a href="{% url ‘deletebook‘ book.pk%}">删除</a></td>


第五篇:模版层
一 模版简介
  模板语言
二 模版语法之变量
  -基本用法:{{ 变量 }}
  -深度查询 .
  -{{ 对象.方法 }} 方法不能传参数
  -字典,列表 用 .
三 模版之过滤器
  -date
  -default
  -slice
...


四 模版之标签
  {%for %}
  {%for a in 可迭代对象 %}
  {{a.name}}
  {{forloop}}
  {%endfor%}

  {% if 条件%}
  {%elif 条件%}
  {%else%}
  {%endif%}

  {% with %}:取别名


五 自定义标签和过滤器
  1 确认app是否已经注册
  2 在app下创建一个包:templatetags
  3 在包中写mytag.py
  4 from django.template import Library
  5 register=Library()
  6 标签:
  @register.simple_tag(别名)
  def mytesttag(a,b,c)
  return a+b+c
  过滤器
  @register.filter(别名)
  def mytestfilter(a,b)
  return a+b
  7 使用标签
  {% load mytag%}
  标签
  {% mytesttag 参数1 参数2 参数3%}
  过滤器
  {{ 第一个参数|mytestfilter:‘第二个参数‘}}


六 模版导入入和继承
  -导入 {% include ‘模板的名字‘%}
  -继承
  -先写一个母版,在母版中定义盒子
    {% block content %}

    {% endblock %}
  -使用:
  在其他模板中:
    {% extends ‘base.html‘ %}
    {% block content %}
  写变化的内容
    {% endblock %}
    -{{block.super}} 会把原来母版中的内容拿过来



七 静态文件相关
-三种方式
-写死
-static
-get_static_prefix

 

 

第六篇:模型层:单表操作,多表操作

-单表:基本查询,双下划线的模糊查询

-多表:
  基于对象的跨表

  基于双下划线的多表
-
聚合查询
  -聚合函数使用
  F,Q查询
  F可以去除字段的值,
  Q查询:构造出与或非得关系
分组查询:
  ‘‘‘
  group by谁就以谁做基表
  filter在前表示where
  filter在后表示having
  values在前表示group by 的字段
  values在后表示取值
  ‘‘‘

#查询每个出版社的名称和书籍个数

 

多表的小结:

         1 queryset对象有update,delete,create

         2 表模型对象,有save,delete

         3 手动创建第三张表(ManyToMany关联)

django知识点小结

原文:https://www.cnblogs.com/zhouhai007/p/10284871.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!