网站开发 售后服务协议,买域名可以自己做网站吗,加拿大网站后缀,手机响应式网站django学习笔记
http://djangobook.py3k.cn/2.0/chapter05/ 文章目录 django学习笔记模型 models.py1、定义数据模型2、模型安装3、创建数据表4、数据表的增删改查4.1 增加4.2 删除4.3 修改4.4 查询4.5 模糊查询4.6 排序连锁查询4.7 限制返回数据 5、模型使用实战 模型 m…django学习笔记
http://djangobook.py3k.cn/2.0/chapter05/ 文章目录 django学习笔记模型 models.py1、定义数据模型2、模型安装3、创建数据表4、数据表的增删改查4.1 增加4.2 删除4.3 修改4.4 查询4.5 模糊查询4.6 排序连锁查询4.7 限制返回数据 5、模型使用实战 模型 models.py
1、定义数据模型
from django.db import models
class Publisher(models.Model):name models.CharField(max_length128) # 出版社名称2、模型安装
INSTALLED_APPS (mysite.books, // books这里是你app名字
)3、创建数据表
python manage.py validate -检查模型的有效性
python manage.py sqlall books --生成shell语句
python manage.py syncdb --执行shell语句4、数据表的增删改查
https://cloud.tencent.com/developer/article/1774570 —这篇文章更容易懂
4.1 增加
这里其实有两步1、创建一个对象 2、调用save
models.Publisher.objects.create(name新华出版社) 4.2 删除
models.Publisher.objects.filter(name清华大学出版社).delete()
Publisher.objects.all().delete() # 删除全部4.3 修改
使用sava方法去修改会修改所有列
obj models.Publisher.objects.get(idid) #先查询
obj.name name # 在内存中修改
obj.save() # 将修改保存到数据库使用updata去修改下面这种方法只会修改1列Publisher.objects.filter(id52).update(nameApress Publishing)
4.4 查询
obj1 models.Publisher.objects.get(name新华出版社) #返回与所给筛选条件相匹配的对象返回结果有且只有一个如果符合筛选条件的对象超过一个或者没有都会抛出错误。
obj2 models.Publisher.objects.filter(name新华出版社) #它包含了与所给筛选条件相匹配的对象返回的是一个对象如果查询不到那么返回的是空列表不报错。
obj3 models.Publisher.objects.filter(name新华出版社).first() #返回与之匹配的第一个对象如果没有则返回空。
obj4 models.Publisher.objects.all() #获取表中所有数据4.5 模糊查询 4.6 排序连锁查询 Publisher.objects.order_by(name)Publisher.objects.order_by(address)此外Django让你可以指定模型的缺省排序方式
class Publisher(models.Model):name models.CharField(max_length30)address models.CharField(max_length50)city models.CharField(max_length60)state_province models.CharField(max_length30)country models.CharField(max_length50)website models.URLField()def __unicode__(self):return self.name**class Meta:****ordering [name]**连锁查询Publisher.objects.filter(countryU.S.A.).order_by(-name)
4.7 限制返回数据
Publisher.objects.order_by(name)[0] --相当于limit15、模型使用实战
from django.shortcuts import render, redirect
from app01 import models# Create your views here.def publisher_list(request):obj models.Publisher.objects.all() # 查数据return render(request, publisher_list.html, {publisher_list: obj}) # {publisher_list: obj}是模板可以传递给前端页面。def publisher_add(request):if request.method POST: pub_name request.POST.get(pub_name) if not pub_name:return render(request, publisher_add.html, {error: 出版社名字不能为空})if models.Publisher.objects.filter(namepub_name):return render(request, publisher_add.html, {error: 出版社已经存在})models.Publisher.objects.create(namepub_name) # 增加出版社使用create方法return redirect(/publisher_list/) return render(request, publisher_add.html)。def publisher_del(request):pk request.GET.get(id) models.Publisher.objects.filter(idpk).delete() # 删除数据库中的数据return redirect(/publisher_list/) def publisher_edit(request):id request.GET.get(id)obj1 models.Publisher.objects.get(idid)if request.method GET:return render(request, publisher_edit.html, {pub_obj: obj1})else:name request.POST.get(pub_name)obj2 models.Publisher.objects.filter(namename)if obj2:return render(request, publisher_edit.html, {msg: 该出版社已存在})else:obj1.name name # 在内存中修改obj1.save() # 将修改保存到数据库return redirect(/publisher_list)