Django

本文详细介绍了Django框架中的数据库ORM操作,包括添加数据、聚合查询和关系映射。同时,讲解了Django的Cookies和Session管理、密码哈希算法以及中间件的使用。此外,还涵盖了文件上传、生成CSV文件和邮件功能等实用特性。
摘要由CSDN通过智能技术生成

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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值