- get : www.baidu.com?s=python&j=java
- post:
- exclude: 查询不满足条件的所与信息
- 五一节作业。 cdtopspeed.
- banner
表关联
- 1:1 OneToOneFields
- 主键和外键是一对一的关系,在关联表中,要一一对应。
- 拓展表找主表; 拓展信息对象。关联字段。
- 用法: 在表二中,使用
a = models.OneToOneField(表一名, on_delete=models.CASCADE)
1. 表二中,通过 .a 直接查询表二的关联信息项
2. 表一中,通过 .表二名,直接查询关联信息。 - 1:n
m : n
静态页面加载,
- static/images/xxx.png
- {% load static %}
{% %}
on_delete
cascade,主表删除,从表也删除
set_null,主表删除,从表关联字段设为空
protect, 不让删除
set_default 主表删除,从表设置为默认值。
review
*virtualenv –no-site-packages -p xxx filename
1. django-admin startproject
2. python startapp
3. settings —> installed_apps 修改databases 修改templates, 修改时区,修改语言。
* templates –> os.path.join(BASE_DIR, ‘templates’)
* databases –> mysql
* STATICFILES_DIRS=[]
4. init–> pymysql
5. urls
app
1. models 定义类,定义表头,给定表头的类型
2. urls 指定连接,连接方法。
3. views, 对应urls中的方法,def, 两种返回方式
* HttpResponse(”) 直接在页面中返回
* render(request,’html’,{‘xx’: xx}) 返回一个templates中的一个html页面,并传入的字典参数。
* 可以在函数中执行操作,可以连接数据库,或者获取html中的值,可以修改数据库的值,也可以吧数据库中的值,显示在HTML中。
1. 通过获取网页中的值,来给数据库增加字段。
* xxx = request.POST.get(‘xxx’) 获取页面中的值并存储起来。
* if request.method == ‘GET’: 返回一个页面。
* if request.method == ‘POST’: 进行存储操作,并可以赋值,返回一个指定的网页。
* table-name.objects.create(tb_name = xxx),将xxx的值,赋值给数据库的某个字段。
2. 通过查询数据库,来获取数据库中的条件筛选的值,并在页面中显示出来
* 三种方法,一对一,一对多,多对多三种类型,根据不同类型,选用不同的方法。
* 一对一,OneToOneField
1. 一个表是另一个表的子表,子表和母表一般在一个models里。子表的models定义时,加上 xxx = models.OneToOneField(母表名,on_delete=models.CASCADE)
2. 在views中使用时,如果是子表查母表,通过.xxx可以直接获得母表的相关信息。如果母表查子表,通过 .