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 "3486806247@qq.com" 邮箱
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

【2021-09-21第一天】

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=https://www.it610.com/article/request.body
    • json.loads(data)


返回请求的数据
  • 返回json
    • jsonResponse
  • 返回字符串
    • HTTPResponse

序列化
  • for i in 查询结果集
  • 数据=i,字段名

    推荐阅读