码迷,mamicode.com
首页 > 其他好文 > 详细

model相关

时间:2017-11-04 16:33:16      阅读:99      评论:0      收藏:0      [点我收藏+]

标签:delete   else   close   htm   链接   类型   作者   foreign   display   

链接数据库

 与数据库相关的两条命令:

1 python manage.py makemigrations    
2 python manage.py migrate

设置数据库

技术分享

 mysql:

技术分享

单表操作

 1 DATABASES = {
 2 
 3     default: {
 4 
 5         ENGINE: django.db.backends.mysql,
 6 
 7         NAME: blog,    #你的数据库名称
 8 
 9         USER: root,   #你的数据库用户名
10 
11         PASSWORD: ‘‘, #你的数据库密码
12 
13         HOST: ‘‘, #你的数据库主机,留空默认为localhost
14 
15         PORT: 3306, #你的数据库端口
16 
17     }
18 
19 }
若出现连接错误::

技术分享

 

 

在models.py里边建立模型

技术分享

 技术分享

 

 

关于数据类型的说明:

 

 操作相关

导入

技术分享

 

增:

1 增加:
2 (1)bookobj=models.Book(title=一本小说,aithor=yuan)
3         bookobj.save()
4 
5 (2)abook=models.Book.create(title=一本小说,....)
6 abook是返回的一个对象

 

查:

  

1 查询全部:models.Book.objects.all()
2 查询符合条件的:models.Book.objects.filter(bid=sel_id)
3 符合条件的第一条:models.Book.objects.filter(bid=sel_id).first()

 1 models.Book.objects.filter(bid=1).update( name=hahah)

修改哪一个字段改哪一个字段

 

 

 1 models.Book.objects.filter(bid=del_id).delete() 

查询方法API:
 1 # 查询方法API:
 2 
 3 
 4     # 1  all: models.表名.objects.all()
 5     # 
 6     book_all=models.Book.objects.all()  # 结果是querySet集合    [model对象,....]
 7     #print(book_all) # <QuerySet [<Book: Book object>, <Book: Book object>, <Book: Book object>]>
 8 
 9     # 2 filter: models.表名.objects.filter() # 结果是querySet集合    [model对象,....]
10 
11     # ret1=models.Book.objects.filter(author="yuan") # # <QuerySet [<Book: 追风筝的人>, <Book: asd>]>
12     #ret2=models.Book.objects.filter(nid=1) # <QuerySet [<Book: yuan>]>
13     # ret2=models.Book.objects.filter(author="yuan",price=123) # <QuerySet [<Book: yuan>]>
14     # print(ret2)
15 
16     # 3 get  models.表名.objects.get()   # model对象
17 
18     # ret3=models.Book.objects.get(author="yuan")
19     # print(ret3.price)
20 
21 
22     # exclude : 排除条件
23     # ret4=models.Book.objects.exclude(author="yuan")
24     # print(ret4)
25 
26     # values方法
27     # ret=models.Book.objects.filter(author="yuan").values("title","price")
28     # print(ret)# <QuerySet [{‘title‘: ‘追风筝的人‘, ‘price‘: Decimal(‘99.00‘)}, {‘title‘: ‘asd‘, ‘price‘: Decimal(‘123.00‘)}]>
29 
30     # ret = models.Book.objects.filter(author="yuan").values_list("title", "price")
31     # print(ret) # <QuerySet [(‘追风筝的人‘, Decimal(‘99.00‘)), (‘asd‘, Decimal(‘123.00‘))]>
32 
33     # ret=models.Book.objects.filter(author="yuan").values("author").distinct()
34     # print(ret)
35 
36     # count方法
37     # ret=models.Book.objects.filter(author="yuan").count()
38     # print(ret)
39 
40     # first 方法
41     # ret = models.Book.objects.all().first()
42     # print(ret)
43 
44     # exists方法
45     # if models.Book.objects.all().exists():
46     #     print("exists")
47     # else:
48     #     print("nothing")
49 
50 
51 
52     ret=models.Book.objects.filter(price__gt=100)
53     ret=models.Book.objects.filter(price__gte=99) # 大于等于
54 
55     #ret=models.Book.objects.filter(publishDate__year=2017,publishDate__month=10)
56     #ret=models.Book.objects.filter(author__startswith="张")

技术分享
 1 # 查询方法API:
 2 
 3 
 4     # 1  all: models.表名.objects.all()
 5     # 
 6     book_all=models.Book.objects.all()  # 结果是querySet集合    [model对象,....]
 7     #print(book_all) # <QuerySet [<Book: Book object>, <Book: Book object>, <Book: Book object>]>
 8 
 9     # 2 filter: models.表名.objects.filter() # 结果是querySet集合    [model对象,....]
10 
11     # ret1=models.Book.objects.filter(author="yuan") # # <QuerySet [<Book: 追风筝的人>, <Book: asd>]>
12     #ret2=models.Book.objects.filter(nid=1) # <QuerySet [<Book: yuan>]>
13     # ret2=models.Book.objects.filter(author="yuan",price=123) # <QuerySet [<Book: yuan>]>
14     # print(ret2)
15 
16     # 3 get  models.表名.objects.get()   # model对象
17 
18     # ret3=models.Book.objects.get(author="yuan")
19     # print(ret3.price)
20 
21 
22     # exclude : 排除条件
23     # ret4=models.Book.objects.exclude(author="yuan")
24     # print(ret4)
25 
26     # values方法
27     # ret=models.Book.objects.filter(author="yuan").values("title","price")
28     # print(ret)# <QuerySet [{‘title‘: ‘追风筝的人‘, ‘price‘: Decimal(‘99.00‘)}, {‘title‘: ‘asd‘, ‘price‘: Decimal(‘123.00‘)}]>
29 
30     # ret = models.Book.objects.filter(author="yuan").values_list("title", "price")
31     # print(ret) # <QuerySet [(‘追风筝的人‘, Decimal(‘99.00‘)), (‘asd‘, Decimal(‘123.00‘))]>
32 
33     # ret=models.Book.objects.filter(author="yuan").values("author").distinct()
34     # print(ret)
35 
36     # count方法
37     # ret=models.Book.objects.filter(author="yuan").count()
38     # print(ret)
39 
40     # first 方法
41     # ret = models.Book.objects.all().first()
42     # print(ret)
43 
44     # exists方法
45     # if models.Book.objects.all().exists():
46     #     print("exists")
47     # else:
48     #     print("nothing")
49 
50 
51 
52     ret=models.Book.objects.filter(price__gt=100)
53     ret=models.Book.objects.filter(price__gte=99) # 大于等于
54 
55     #ret=models.Book.objects.filter(publishDate__year=2017,publishDate__month=10)
56     #ret=models.Book.objects.filter(author__startswith="张")
相关的API部分

 

多表查询

建立多表,以图书管理系统为例

技术分享

 

技术分享

技术分享
 1 from django.db import models
 2 
 3 # Create your models here.
 4 class Book(models.Model):
 5     #book表
 6     bid=models.AutoField(primary_key=True)
 7 
 8     title=models.CharField(max_length=42)
 9 
10     publishDate=models.DateField()
11 
12     price=models.DecimalField(max_digits=5,decimal_places=2)
13 
14     author=models.ManyToManyField(Author)
15 
16     press = models.ForeignKey(Press)
17     # read_many = models.OneToOneField(‘Read_many‘)
18     def  __str__(self):
19         return self.title
20 
21 
22 class Author(models.Model):
23     #作者表
24     name=models.CharField(max_length=32)
25     tel=models.IntegerField()
26     # press=models.OneToOneField(to=‘Press‘)
27     def __str__(self):
28         return self.name
29 
30 class Press(models.Model):
31     #出版社表
32     press_name=models.CharField(max_length=32)
33     press_addr=models.CharField(max_length=32)
34     def __str__(self):
35         return self.press_name
36 
37 # class Read_many(models.Model):
38 #     #阅读相关表
39 #     wordNum=models.IntegerField(default=0)
40 #     readNum=models.IntegerField(default=0)
models代码
技术分享
  1 from django.shortcuts import render,redirect,HttpResponse
  2 from app01 import models
  3 
  4 
  5 import datetime,time
  6 # Create your views here.
  7 def Dashboard(request):
  8     return render(request, Dashboard.html)
  9 
 10 def base(request):
 11     return render(request,base.html)
 12 
 13 def insert_book(request):
 14 
 15     return redirect(/info/)
 16 
 17 
 18 def book_info(request):
 19     book_info_all=models.Book.objects.all()
 20     # try:
 21     #     print(‘看作者:‘, book_info_all.first().author.all())
 22     # except Exception:
 23     #     print(‘这里出错了‘)
 24     list_name = models.Author.objects.all().values_list(id,name)
 25     # print(‘作者的名字‘, list_name)
 26     list_press = models.Press.objects.all().values_list(id,press_name)
 27     # print(‘出版社:‘, list_press)
 28     return render(request,BookInfo.html,{book_info_all:book_info_all,list_name:list_name,list_press:list_press})
 29 
 30 
 31 # def tianjia(request):
 32 #     list_name=models.Author.objects.all().values_list(‘name‘)
 33 #     print(‘作者的名字‘,list_name)
 34 #     list_press=models.Press.objects.all().values_list(‘press_name‘)
 35 #     print(‘出版社:‘,list_press)
 36 #     # for i in list_name:
 37 #     #     print(i[0])
 38 #     return render(request,‘tianjia.html‘,{‘list_name‘:list_name,‘list_press‘:list_press})
 39 
 40 
 41 
 42 def tianjia(request):
 43     print(这里是添加的东西,request.POST)
 44     book_obj=models.Book.objects.create(
 45         title=request.POST.get(title),
 46         publishDate=request.POST.get(date),
 47         price=request.POST.get(price),
 48         press_id=request.POST.get(press)
 49     )
 50     # print(‘title‘,request.POST.get(‘title‘))
 51     # print(‘date‘,request.POST.get(‘date‘))
 52     # print(‘price‘,request.POST.get(‘price‘))
 53 
 54     # author_id=request.POST.get(‘author‘)
 55     author_id=request.POST.getlist(author)
 56     print(author_id,author_id)
 57     for author_one in author_id:
 58         print(第一 * 10)
 59         print(models.Author.objects.filter(id=author_one))
 60         book_obj.author.add(models.Author.objects.filter(id=int(author_one))[0])
 61         print(models.Author.objects.filter(id=author_one))
 62         # print(‘第2‘ * 10,models.Author.objects.filter(id=author_one))
 63     # press_id=request.POST.get(‘press‘)
 64     # print(‘第3‘ * 10)
 65     # book_obj.press=models.Press.objects.filter(id=press_id)
 66 
 67     return redirect(/book/)
 68 
 69 
 70 
 71 
 72 
 73 def  del_id(request,book_id):
 74     models.Book.objects.filter(bid=book_id).delete()
 75     return redirect(/book/)
 76 
 77 
 78 
 79 def bianji(request,book_id):
 80     edit_info=models.Book.objects.filter(bid=book_id).first()
 81     # print(edit_info.author.all().values_list(‘id‘,‘name‘))
 82     eau=edit_info.author.all().values_list(id,name)
 83     item_l=[]
 84     for item_id in eau:
 85         item_l.append(item_id[0])
 86     # print(‘作者的名字eau‘,eau)
 87     # print( ‘66666666666666666+‘,models.Author.objects.all().values())
 88     list_name=edit_info.author.all().values_list(id,name)
 89     list_name = models.Author.objects.exclude(id__in=item_l).values_list(id,name)
 90     # print(‘作者的名字‘, list_name)
 91     list_press = models.Press.objects.exclude(id=edit_info.press_id).values_list(id,press_name)
 92 
 93     return render(request,info_edit.html,{edit_info:edit_info,list_name:list_name,list_press:list_press,eau:eau})
 94 
 95 #
 96 def info_edit(request):
 97     book_obj = models.Book.objects.filter(bid=request.POST.get(bid))
 98     book_obj.update(
 99         title=request.POST.get(title),
100         publishDate=request.POST.get(date),
101         price=request.POST.get(price),
102         press_id=request.POST.get(press)
103     )
104     book_obj[0].author.clear()
105     # for au_id in request.POST.getlist(‘author‘):
106     auobj=models.Author.objects.filter(id__in=request.POST.getlist(author))
107     for add_obj in auobj:
108         book_obj[0].author.add(add_obj)
109     print(查询出来的,auobj)
110     print(book_obj.authorList,book_obj[0].author.all())
111     # print(request.POST.get(‘title‘))
112     return redirect(/book/)
View代码
技术分享
 1 from django.conf.urls import url
 2 from django.contrib import admin
 3 from app01 import views
 4 
 5 urlpatterns = [
 6     url(r^admin/, admin.site.urls),
 7     url(r^Dashboard/, views.Dashboard),
 8     url(r^base/, views.base),
 9     url(r^book/, views.book_info),
10     url(r^tianjia/, views.tianjia),
11     url(r^del/(\d+), views.del_id),
12     url(r^bianji/(\d+), views.bianji),
13     url(r^info_edit/, views.info_edit),
14 ]
urls

 

*

*

*

*

*

**

*

 

*

 

model相关

标签:delete   else   close   htm   链接   类型   作者   foreign   display   

原文地址:http://www.cnblogs.com/xiesibo/p/7731083.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!