WSGI(Web Server Gateway Interface)是一种规范,它定义了使用python编写的web app 与web server 之间的接口格式,实现web app 和 web server间的解耦
django-admin startproject 姓名名称
GET 请求时 request.GET 从url解析获取值
POST 请求时 request.POST(包体中)和request.GET(url中) 中都可能有值
GET请求产生的场景:
----浏览器中输入URL,回车
----在form表单中定义method=‘GET’
request.GET.get(‘a’) 如果URL参数中有多个参数为a,则返回最后一个参数的值
request.GET.getlist(‘a’) 以列表的形式返回所有参数a对应的值
模板中使用变量的语法:
{ {变量名}}
{ {变量名.index}}
{ {变量名.key}}
{ {对象.方法}}
{ {函数名}}
模板中的标签
{% python语句 %}
{% 结束语句 %}
标签中调用变量时不需要再加{ {}}
模板的过滤器:
{ {变量名|过滤器1:”参数1“|过滤器2|:”参数2“|…}}
模板的继承:
父模板中定义哪些是可以被修改的。{% block name%} {% endblock %}
子模板 无法继承父模板中的变量
URL反向解析:
视图中使用:
return redirect(reverse('xxx'))
模板中使用:
<a href="{% url 'xxx' %}"> url命名和反向解析 </a>
静态文件:
图片、视频、CSS、JS等等
模板访问静态文件:
通过{% static %}标签访问
1 加载static {% load static %}
2 使用静态资源 {% static ‘URL’ %} URL=static/下的二级目录开始
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wS4N4tM4-1626266657609)(C:\Users\JXY\AppData\Roaming\Typora\typora-user-images\image-20210701213031322.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bXT2q76p-1626266657611)(C:\Users\JXY\AppData\Roaming\Typora\typora-user-images\image-20210701214052549.png)]
数据库ORM
添加数据
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KHH4QF9O-1626266657612)(C:\Users\JXY\AppData\Roaming\Typora\typora-user-images\image-20210705201542212.png)]
F 标记字段
Q 逻辑查询
聚合查询
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jLTM4eJi-1626266657613)(C:\Users\JXY\AppData\Roaming\Typora\typora-user-images\image-20210706212434733.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y8bKXT4g-1626266657614)(C:\Users\JXY\AppData\Roaming\Typora\typora-user-images\image-20210706212907768.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k23JHzl1-1626266657615)(C:\Users\JXY\AppData\Roaming\Typora\typora-user-images\image-20210707220034079.png)]
关系映射
一对一正向查询:
class Wife(models.Model):
name = models.CharFiled(maxlenth=10)
husband = models.oneToneFiled(Husband, on_delete = CASCADE)
class Husband(models.Model):
name = models.CharFiled(maxlenth = 10)
一对一正向查询:
正向查询
wife.husband.name
反向查询
husband.wife(管理模型类名 小写).name
一对多:
pub是1
book是多----有外键
book.pub.name
pub.book__set.all() 获取多的全部对象queryset
多对多---出现第三章表
一个作者多本书
一本书有多个作者
manytomany任意放在一个模型上
class Author(models.Model):
name = models.CharFiled(maxlenth=10)
class Book(models.Model):
title = models.CharFiled