2021-09-21第一天

redis的使用

redis-cli 进入

set code 用户手机号 手机号码

get code 查看验证码

expire code 时间 有效时间

incr code

git使用

git clone https://gitee.com/QiHanXiBei/h2103-a.git 创建h2103-a

git config --global user.email "[email protected]" 邮箱

git pull 加载

git add -A 加入

git commit -m '20210907_homework'

git push origin master 加入

超级用户

python manage.py createsuperuser

Django

处理HTTP

Wsgl.py

Vue ------> uwsgli------>Django

Python manage.py runserver

开启uwsgi 启动django

"""
WSGI config for mydjango project.
​
It exposes the WSGI callable as a module-level variable named ``application``.
​
For more information on this file, see
https://docs.djangoproject.com/en/2.0/howto/deployment/wsgi/
"""
​
import os
​
from django.core.wsgi import get_wsgi_application
​
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mydjango.settings")
​
application = get_wsgi_application()
​

设计模式----->mvc------>代码

                    mvc ----->tava

9月18下午

django的创建命令

django-admin startproject 项目名册

Model的作用什么

操作数据库

View的作用是什么

视图 处理逻辑 业务逻辑

Model如何来使用?

建立表结构 ---------->创建模型类

迁移模型类 ----------->迁移模型类

表的数据操作---------->增删改查()

迁移成功的条件是migrations文件夹中生成

python manage.py makemigrations 迁移操作

python manage.py migrate 迁移操作

数据的查询

1、基本查询

book = BookInfo.objects.get(btitle = "西游记") # 单一查询,如果结果不存在 报错

book = BookInfo.objects.all(btitle = "西游记") #查询多个结果,有多少返回多少,不存在返回None

book = BookInfo.objects.filter(btitle = "西游记").count() #查询结果的数量

book = BookInfo.objects.exclude(btitle = "西游记") # 查询结果取反

2、模糊查询

a.contains 是否包含

book = Bookinfo.objects.filter(btitle_contains="记") # 查询结果包含’记‘的

b.s

2.模糊查询: acontains是否包含 book=Bookinfo.objects.flter(btitlecontains='记) #查询结果包含记的

b.start.swith,end.swith以指定值开头或结尾

book=Bookinfo.objects.fiter(btitle_startswith=西) #查询以西开头的

book =Bookinfo.objects.flter(btitleendswith='记)) #查询以记结尾的

3.空查询:

isnull 是否为空

book=Bookinfo.object.flter(bititleisnull=Flase) #查询bititle不为空

4.范围查询:

in在范围内

range 相当于between...and...

book =Bookinfo.object.fiter(id_in=[1,5,13,24]) #查询id为1或5或13或24

book=Bookinfoobject.flter(id_range =[10,20]) #查询范围为10-20的id

5比较查询:

gt 大于 gte 大于等于 It 小于 Ite 小于等于 exclude 不等于 book=Bookinfo.object.flter(idgt=10) #查询id大于10的 book=Bookinfo.object.exclude(id=10) #查询id不等于的10的

7.F对象和Q对象

比较两个字段对象之间的关系用F对象。(F对象可以进行运算)

book=Bookinho.object.hiter(bread.gte=F('bcomment')) #查询阅读量等于评论量的对象

book=Bookino.object.hiter(bread_gte=F(bcomment')*2)

#与逻辑运算符连用使用Q对象。 或(|) 与(&) 非 (-)

book=Bookinfo.object.flter(Q(bread_gte=20)Q(pk_It=3))#查询阅读量为20或者id为3的对象

8.聚合函数

使用aggregate()过滤器调用聚合函数。聚合函数包括:Avg平均,Count数量,Max最大,Min最小,

Sum求和

book=Bookinfo.Object.aggregate(Sum('bread)) #求阅读量的和

9.排序

使用order_by对结果进行排序

book=Bookinfo.object.all()order by('bread') #按阅读量的升序排列

book=Bookinfo.object.all()orderby(-bread) #按阅读量的降序排列

10.关联查询

一对多模型

一到多的访问语法:一对应的模型类对象多对应的模型类名小写set

b=Bookinfo.object.filter(id=1)

b.heroinfo_set.all() #查询bookid=1的书里的所有英雄

(一本书里有多个英雄,一个英雄只能存在一本书里。表关系为一对多,英雄表里外键关联书id英雄表里的存放多个书id。英表为多,书表为一。)

多到一的访问语法:多对应的模型类对象多对应的模型类中的关系类属性名

h=Herolnfo.object.flter(id=1)

h.hbook #查询英雄id=1的书是哪本。

方向查询除了可以使用模型类名set还有一种是在建立模型类的时候使用relatedname来指定变量名

hbook=modelForeignKey(Herolnfoon_delete=model.CACADEnull=Ture,related name='heros') b.herose.all()

view的使用

获取view里request的请求参数

  • 获取get

    • request.GET.get()

  • 获取form-data

    • request.POST.get()

  • 获取json

    • data=request.body

    • json.loads(data)

返回请求的数据

  • 返回json

    • jsonResponse

  • 返回字符串

    • HTTPResponse

序列化

  • for i in 查询结果集

  • 数据=i,字段名

Guess you like

Origin blog.csdn.net/SONY222/article/details/120404295