Django(3)

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之后,我们先来看看目录这些是用来干什么的

扫描二维码关注公众号,回复: 1586410 查看本文章

创建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 %}

猜你喜欢

转载自www.cnblogs.com/shanjinghao/p/9179995.html