django-models(数据模型)

Posted baird

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django-models(数据模型)相关的知识,希望对你有一定的参考价值。

models.py用于创建数据模型

1、在settings.py -> INSTALLED_APPS 中注册对应的app

2、在models.py中创建数据模型类,必须继承models.Model。

1 class UserInfo(models.Model):
2     username = models.CharField(max_length=32)
3     password = models.CharField(max_length=32,null=False)

*python会自动生成名为id的主键列,自增

 

需要创建外键时:

1 fkey = models.ForeignKey(Table,PROTECT,to_field=id)

 

3、执行

manage.py makemigrations
manage.py migrate

到此为止数据库中生成名为 AppName_UserInfo 的表

 

4、基础增删改查

 1 from cmdb import models
 2 
 3 def handle(request):
 4     # 增加数据
 5     models.UserInfo.objects.create(
 6         username = "Baird",
 7         password = "123"
 8     )
 9     # 增加数据2
10     # obj = models.UserInfo(
11     #     username = "Baird",
12     #     password = "123"
13     # )
14     # obj.save()
15 
16     # 查找全部  返回QuerySet类型  UserInfo object
17     v1= models.UserInfo.objects.all()
18     for row in v1:
19         print(row.id,row.username,row.password)
20 
21     # 查找全部  返回字典
22     v2= models.UserInfo.objects.all().values(id,username)
23     for row in v2:
24         print(row[id],row[username])
25 
26     # 查找全部  返回元祖
27     v3= models.UserInfo.objects.all().values_list(id,username)
28     for row in v3:
29         print(row[0],row[1])
30 
31     #条件查询
32     result = models.UserInfo.objects.filter(id=1)
33     for row in result:
34         print(row.id,row.username,row.password)
35     # 删除
36     # result.delete()
37     # 更新数据
38     result.update(password = "123456")
39     return HttpResponse(result)
40     return render(request,business.html,{v1:v1,v2:v2,v3:v3})
 

5、在templates中使用返回的查询

 1 <h1>(QuerySet对象)</h1>
 2     <ul>
 3         {% for row in v %}
 4             <li>{{ row.id }}-{{ row.caption }}-{{ row.code }}</li>
 5         {% endfor %}
 6     </ul>
 7     <h1>(字典)</h1>
 8     <ul>
 9         {% for row in v2 %}
10             <li>{{ row.id }}-{{ row.caption }}-{{ row.code }}</li>
11         {% endfor %}
12     </ul>
13     <h1>(元组)</h1>
14     <ul>
15         {% for row in v3 %}
16             <li>{{ row.0}}-{{ row.1 }}-{{ row.2 }}</li>
17         {% endfor %}
18     </ul>

 

 

以上是关于django-models(数据模型)的主要内容,如果未能解决你的问题,请参考以下文章

django-models_模型相关1

Django-models,继承AbstractUser类

Django-models进阶

使用 ABC、PolymorphicModel、django-models 会产生元类冲突

Django-models的字段类型

AJAX相关JS代码片段和部分浏览器模型