Django
Django 处理一个请求的流程
在浏览器的地址栏中输入地址, 回车, 发了一个 GET 请求
wsgi 模块接收了请求, 将请求的相关信息封装成 request 对象
根据地址找到对应函数
执行函数获取到返回结果, wsgi 模块将结果返回给浏览器
发请求的途径
在浏览器的地址栏中输入地址 get 请求
a 标签 get 请求
form 表单 get/post
函数
- def xxxx(reqeust):
- return HttpResponse()
- reqeust:
reqeust.GET url 上携带的参数 ?k1=v1&k2=v2
reqeust.POST form 表单提交 POST 请求的参数
request.method 请求方式 GET,POST
response:
HttpResponse('字符串') --》 返回字符串
render(request,'模板的名字',{}) --》 返回一个页面
redirect('地址') --》 重定向
- ORM
- from django.db import models
- ?
- class Publisher(models.Model):
- name = models.CharField(max_length=32)
- # 一对多的关系
- class Book(models.Model):
- name = models.CharField(max_length=32)
- pub = models.ForeignKey(to='Publisher',on_delete=None)
- def __str__(self):
- return self.name
查询:
- from app01 import models
- ret = models.Book.objects.all() # QuerySet 对象列表
- for book in ret:
- print(book)
- print(book.name)
- print(book.id) print(book.pk)
- print(book.pub) # 所关联的对象
- print(book.pub_id) # 所关联的对象 id
新增
- obj = models.Book.objects.create(name='xxx',pub = 出版社的对象)
- obj = models.Book.objects.create(name='xxx',pub_id = 出版社的对象 id)
- ?
- obj = models.Book(name='xxx',pub_id = 出版社的对象 id)
- obj.save()
删除
- models.Book.objects.filter(pk=1).delete()
- models.Book.objects.get(pk=1).delete()
修改
- models.Book.objects.filter(pk=1).update(name='xxx')
- ?
- obj = models.Book.objects.filter(pk=1).first()
- obj.name = 'xxxx'
- obj.pub_id = 2
- obj.save()
模板语法
- render(request,'模板的名字',{'k1':v1,'books':books})
- ?
- {{ k1 }}
- ?
- {% for i in books %}
- {{ forloop.counter }}
- {{ i }}
- ?
- {% endfor %}
- ?
{% if 条件 %}
- xxx
- {% else %}
- xxxxx
- {% endif %}
- # 查询所有的作者信息
- all_authors = models.Author.objects.all()
- for author in all_authors:
- print(author)
- print(author.name)
- print(author.books,type(author.books)) # 关系管理对象
- print(author.books.all(),type(author.books.all())) # 所关联的所有的对象
新增
- book_id = request.POST.getlist('book_id')
- ?
- # 插入数据
- obj = models.Author.objects.create(name=author_name)
- obj.books.set(book_id) # 设置多对多的关系
- ?
- cookie
定义:
保存在浏览器本地上一组组键值对
特点:
1. cookie 是由服务器进行设置的
浏览器保存在本地的
下次访问时自动携带对应的 cookie
Django 的操作:
设置
- response.set_cookie(key,value) # Set-Cookie: is_login=1; Path=/
- response.set_signed_cookie('is_login','1',salt='xxxx')
获取
- request.COOKIES # {}
- request.COOKIES[key] .get(key)
- request.get_signed_cookie(key,salt='xxxx',default='',max_age=5,path='/')
删除
- response.delete_cookie(key) # 设置键值对的值为空 超时时间为 0
来源: http://www.bubuko.com/infodetail-3334999.html