路由: 1 第一个参数,传正则表达式 '^$' 视图函数index tets/(d+) test/2014 .... '' 404错误页面 2 无名分组:(d+)用括号分组 3 有名分组:(?P<year>[0-9]{4}) 视图函数:year必须对应,位置可以乱 4 有名和无名不要同时使用 5 路由分发: 匹配正则 include('app.urls')---两种写法 跟路由配置,再settings里 6 反向解析 视图函数:url=reverse('name',args=(123,)) 有名分组:url=reverse('name',kw={...}) 模板里: {% url 'name' %} ---->{% url 'name' 参数1 参数2 %}----》{% url 'name' key=参数1 key=参数2 %} 7 名称空间:include('app.urls',namespace='app01') 反向解析,通过namespace来找 url=reverse('app01:name',args=(123,)) {% url 'app01:name' %} 8 伪静态 9 2.0 和1.几区别:url 就是re_path 2.0多了个path 10 path 精准匹配,不支持正则 int str slug uuid path <int:year>----》视图函数:参数名也叫year 自定义转换器: regex=正则 to_python to_url 视图: 1 request对象:method POST GET FILES path get_full_path() 2 response 对象 三件套 Jsonresponse django.http improt Jsonresponse 3 CBV View : get(self,request) post(self,request) dispatch 一定要return 再路由里怎么写:类名.as_view() 4 MVC和MTV 5 文件上传 基于form表单 type 是file 重点:<form action="" method="post" enctype="multipart/form-data"> <input type="file" name=‘1’> <input type="file" name=‘2’> <input type="file" name=‘3’> </form> body体的内容格式:b'name=lqz&age=18' FILES是个字典:字典取值 ,去出来是个文件对象 补充:直接循环file对象 模板: 1 {{ }} 据点符:深度查询,点函数(不能加括号,不能传参数) 过滤器: 2 {% %} for for 嵌套 if forloop empty if in is >.... with 给变量重命名 1 aa=aaaaa.aaaaa 2 aaaaa.aaaaa as aa 3 自定义标签,自定义过滤器 from django import template register=template.Library() @register.filter(name='xxx') def aa(x,y): return 'dd' @register.simple_tag(name='yy') def bb(x,y,z,t): return 'ccc' 模板用: {% load mytest%} 过滤器:{{参数|xxx:'参数'}} 标签:{% yyy 参数 参数 参数 %} 最大区别:过滤器,可以放在if判断里 <ul> {% if data%} {%endif%} </ul> 静态文件引入的三种方式 一: <link rel="stylesheet" href="/static/dd/ssmycss.css"> 二: {% load static %} <link rel="stylesheet" href="{% static 'dd/ss/mycss.css' %}"> {# 返回值:/static/dd/ss/mycss.css#} 三: <link rel="stylesheet" href="{% get_static_prefix %}dd/ss/mycss.css"> 模板导入和继承 include 和extend 模型层之单表操作: 1 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'mytest', 'HOST': '127.0.0.1', 'PORT': 3306, 'USER': 'root', 'PASSWORD': 'egon123' } 2 init.py import pymysql # django 默认用mysqldb连接mysql数据库,但是mysqldb这个模块不支持python3.0以后的版本, # 所以用pymysql来替换mysqldb pymysql.install_as_MySQLdb()