day61 Pyhton 框架Django 04
内容回顾
1.django处理请求的流程:
1. 在浏览器的地址栏输入地址,回车发get请求;
2. wsgi模块接收请求;
3. 在urls.py文件中匹配地址,找到对应的函数;
4. 执行函数,返回响应。
2.发请求的方式:
1. 输入地址 —— GET
2. form 默认是get
3. form 发post请求
4. a标签 get
3.函数的返回值
HttpResponse('显示的内容') —— 》 字符串
render(request,'HTML文件名', { 'k1': v1 } ) —— 》 完整的HTML页面
redirect('要跳转的地址') ——》 重定向 Location: ‘'要跳转的地址’
4.外键
表示多对一的关系
for book in Book.objects.all(): # 所有的书籍对象
book.id # 主键
book.name # 名称
book.pub # 书籍关联的出版社对象
book.pub_id # book表中对应出版社的ID
# 增加
Book.objects.create(name='xxxx',pub_id='111')
Book.objects.create(name='xxxx',pub=pub_obj)
# 删除
Book.objects.get(pk=1).delete()
Book.objects.filter(pk=1).delete()
# 编辑
book_obj.name = 'new name'
book_obj.pub_id = '11'
book_obj.pub =pub_obj
book_obj.save()
5.模板的语法
{% if xxx == xxx %}
xxxx
{% elif 条件 %}
www
{% else %}
xxx
{% endif %}
今日内容
多对多的关系
作者的增删改查
model:
# 作者
class Author(models.Model):
name = models.CharField(max_length=32, unique=True)
books = models.ManyToManyField('Book')
展示:
for author in all_authors:
print(author)
print(author.pk)
print(author.name)
print(author.books, type(author.books)) # 多对多关系管理对象
print(author.books.all(), type(author.books.all())) # 多对多关系管理对象
print('*' * 30)
增加:
name = request.POST.get('name')
books_id = request.POST.getlist('books_id')
# 插入到数据库中
author_obj = models.Author.objects.create(name=name)
# 绑定书籍和作者的关系
author_obj.books.set(books_id)
正向查询:
多对多字段在作者表中:
作者 ——》 书籍
author_obj.books ——》 多对多的管理对象
author_obj.books.all() ——》 当前作者所关联的所有书籍对象
反向查询:
书籍 ——》 作者
book_obj.author_set ——》 多对多的管理对象
book_obj.author_set .all() ——》 当前书籍所关联的所有作者对象