创建数据库中的一个表
1
2
3
4
|
class Business(models.Model):
#自动创建ID列
caption = models.CharField(max_length=32)
code = models.CharField(max_length=32)
|
1.增加
方法一
1
|
models.Business.objects.create(caption='市场部',code='123')
|
方法二
1
2
|
obj = models.UserInfo(caption='市场部',code='123')
obj.save()
|
方法三
1
2
|
dic = {'caption':'市场部','code':'123'}
models.Business.objects.create(**dic)
|
2.删除
1
|
models.Business.objects.filter(id=1).delete()
|
查询方法见下方查询
3.更改
方法一
1
|
models.Business.objects.filter(id=1).update(code='hello')
|
方法二
1
2
3
|
obj = models.Business.objects.get(id=1)
obj.code = 'hello'
obj.save()
|
查询方法见下方查询
4.查询
获取全部
1
|
v1 = models.Business.objects.all() #QuerySet类型,内部元素都是对象
|
获取指定
1
2
3
4
5
|
v2 = models.Business.objects.all().values("id","caption") #QuerSet类型,内部元素都是字典
v3 = models.Business.objects.all().values_list('id','caption') #QuerySet类型,内部元素都是元组
v4 = models.Business.objects.get(id=1) #获取一个队象,如果不存在就报错
v5 = models.Business.objects.filter(id=1) #QuerySet类型,内部元素是对象,id__gt=1获取所有id>1的数据,id__lt=10,获取所有id<10的数据
v6 = models.Business.objects.filter(id=1).first() #返回对象或者None
|
应用实例
business函数
1
2
3
4
5
|
def business(request):
v1 = models.Business.objects.all()
v2 = models.Business.objects.all().values("id","caption")
v3 = models.Business.objects.all().values_list('id','caption')
return render(request,"business.html",{"v1":v1,"v2":v2,"v3":v3})
|
1
|
url(r'^business$',views.business)
|
business.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
<!DOCTYPE html>
< html lang = "en" >
< head >
< meta charset = "UTF-8" >
< title >Document</ title >
</ head >
< body >
< ul >
< h1 >ALL</ h1 >
{% for row in v1 %}
< li >{{row.id}}-{{row.caption}}-{{row.code}}</ li >
{% endfor %}
</ ul >
< ul >
< h1 >all.values</ h1 >
{% for row in v2 %}
< li >{{row.id}}-{{row.caption}}</ li >
{% endfor %}
</ ul >
< ul >
< h1 >all.values_list</ h1 >
{% for row in v3 %}
< li >{{row.0}}-{{row.1}}</ li >
{% endfor %}
</ ul >
</ body >
</ html >
|
以上这篇Django数据库操作的实例(增删改查)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:http://www.cnblogs.com/Charles9703/archive/2017/09/04/7472580.html