class Book(models.Model): id=models.AutoField(primary_key=True) name=models.CharField(max_length=32) publisher=models.ForeignKey(to=Publisher) 今天的重点在于外键 publisher与publisher_id
publisher是对象,publisher_id是id值
一 web框架介绍
具体介绍Django之前,必须先介绍WEB框架等概念。
web框架: 别人已经设定好的一个web网站模板,你学习它的规则,然后“填空”或“修改”成你自己需要的样子。
一般web框架的架构是这样的:
其他的基于python的web框架,如tornado、flask、webpy都是在这个范围内进行增删裁剪的。
例如tornado用的是自己的异步非阻塞“wsgi”,flask则只提供了最精简和基本的框架。Django则是直接使用了WSGI,并实现了大部分功能。
二 Django的MTV模型组织
目录分开,就必须有机制将他们在内里进行耦合。在Django,urls、orm、static、settings等起着重要的作用。
三 Django实战案例
当我们创建完Django之后,我们先来看看目录这些是用来干什么的
创建app(应用程序)
我们来看看app01下面的目录里面有什么?
四:了解这些之后来看看我们今天老师写的作业流程。
第一步:根据MTV模型,我们首先想启动Django服务器,然后我们向这个服务器发送请求。
第二步:WSGI通信模块来接受消息
第三步:到达了url模块(如果想了解上一步怎么样到达这一步点击这里),被捕捉到,然后跳入views中的publisher_list
第四步:到views中找到函数对象publisher_list。
第五步:找到类中和打开publisher_list2.html
第六步:点击编辑跳转,点击删除跳出。
第七步:找到views中的delete_publisher,edit_publisher
1. 编辑书籍信息
2. Django的模板语言(字符串替换的规则)
1. {{变量}} {{变量.属性}}
2. for循环
{% for i in xx %}
{{i}}
{% endfor %}
forloop.counter --> 计数
3. if判断
{% if 条件 %}
条件成立要做的事儿
{% else %}
条件不成立要做的事儿
{% endif %}
3. 作者增删改查
作者和书是多对多的关系
book author book2author
1. 作者关联的书有多个
我们怎么通过Django 的 ORM 取到和我这个作者关联的所有书
author_obj.books.all() --> 书籍对象的列表
2. 如何在页面上展示出 我这个作者关联的所有的书籍
{% for book in author_obj.books.all %}
{% if forloop.last %}
{{book.title}}
{% else %}
{{book.title}},
{%endif%}
{% endfor %}