参考:https://blog.csdn.net/weixin_44510615/article/details/89425412

1、Django模型字段常用类型:

IntegerField : 整型,映射到数据库中的int类型。
CharField: 字符类型,映射到数据库中的varchar类型,通过max_length指定最大长度。
TextField: 文本类型,映射到数据库中的text类型。
BooleanField: 布尔类型,映射到数据库中的tinyint类型,在使用的时候,传递True/False进去。如果要可以为空,则用NullBooleanField。
DateField: 日期类型,没有时间。映射到数据库中是date类型,
在使用的时候,可以设置DateField.auto_now每次保存对象时,自动设置该字段为当前时间。设置DateField.auto_now_add当对象第一次被创建时自动设置当前时间。
DateTimeField: 日期时间类型。映射到数据库中的是datetime类型,
在使用的时候,传递datetime.datetime()进去。
mailField :电子邮件类型。

2、联合主键

#联合主键
class Meta:
unique_together = ('字段1','字段2')

3、 __str__ ()方法是Python的内置方法,需要返回一个字符串,当做这个对象的描写,如果不定义这个方法,查询数据返回的就是类名,定义方法之后返回的就是定义的字段中的数据,直观的显示这个数据是谁。下面的代码查询返回显示的就是name字段储存的数据。

class SampleTest(models.Model):
name = models.CharField(max_length=100)
....... def __str__(self):
return self.name

 4、当模型建立好了执行数据迁移

python manage.py makemigrations  应用名

python manage.py migrate

 5、Admin为数据模块提供界面。

ModelAdmin参数介绍:在注册admin时,通过继承ModelAdmin,设置相应的字段能够自定义model表在admin后台的显式格式。

list_display = ('__str__',): 设置model表需要显示的字段,未设置时只显示__str__()的返回值。search_fields = []:搜索栏 。list_filter = [] #过滤器

from django.contrib import admin
from .models import Event,Guest
# Register your models here. #Event模型的管理器
class EventAdmin(admin.ModelAdmin):
# 设置哪些字段可以点击进入admin编辑界面
list_display = ['id','name','limit','status','address','start_time','create_time']
search_fields = ['name'] #搜索栏
list_filter = ['status'] #过滤器 #Guest模型的管理器
class GuestAdmin(admin.ModelAdmin):
# 设置哪些字段可以点击进入admin编辑界面
list_display = ['realname','phone','email','sign','create_time','event']
search_fields = ['realname','phone'] #搜索栏
list_filter = ['sign'] #过滤器 #在admin中注册绑定,不对EventAdmin进行绑定就会只注册Event,在admin后台只显示Event。
admin.site.register(Event,EventAdmin)
admin.site.register(Guest,GuestAdmin)

  5、基本数据访问。

进入python manage.py shell  >导入相应的类

获得table中的所有对象:table.objects.all()

获得某一条数据对象:table.objects.get(条件)                                    如果数据不存在会报错。

获取匹配结果返回列表:table.objects.filter(条件)                              如果记录不存在返回空列表[]  

table.objects.filter(字段__contains='XX')                                          字段+双下划线+contains 的效果类似sql里的like模糊匹配

新增一条数据:table.objects.create()

删除一条数据:t1 = table.objects.get(条件) t1.delete()            最好先查询,再执行删除。

修改一条数据:t1 = table.objects.get(条件) t1.update(XX='YYY')   最好先查询,再执行更新。

6、连接数据库。

首先要先配置mysql 数据库,参考我之前写的随笔文章。然后安装PyMySQL驱动操作MySql    pip install pymysql 

在__init__.py文件中添加配置:

import pymysql
pymysql.install_as_MySQLdb()

然后执行数据库同步: python manage.py migrate

由于更换了数据库,所以Admin后台超级管理员也需要重新创建:python manage.py createsuperuser

安装Mysql管理工具Navicat。配置文档也在我的随笔中。

最新文章

  1. Mono 3.2 上跑NUnit测试
  2. JAVA面试题1
  3. WPF 打开文件、文件夹
  4. Maps for Developers
  5. 7.5 [bx+idata] 书中错误
  6. 理解KMP
  7. (转载)OC学习篇之---Foundation框架中的NSObject对象
  8. 【工作记录】c#操作win7注册表
  9. 如何登录mysql? cmd怎么连接mysql数据库
  10. NET MVC+EF6+Bootstrap
  11. PSAM SAM
  12. 安装cocopods 更新ruby
  13. 【Android工具类】Activity管理工具类AppManager
  14. ajax bookstrap美化网页,并实现页面的加载,删除与查看详情
  15. Windows下检测文件名大小写是否匹配
  16. Shell菜单脚本
  17. [Python] wxPython 高防Windows10记事本 (end...)
  18. LeetCode算法题-Delete Node in a Linked List(Java实现)
  19. Delphi不注册COM直接使用ActiveX控件并绑定事件
  20. kaptcha验证码实现,配合spring boot使用

热门文章

  1. selenium按钮
  2. Vue指令之事件修饰符
  3. Linux 命令之 alias
  4. ansible自动化部署之场景应用
  5. OAuth2在微服务架构中的应用
  6. Git 的用法
  7. 1122 django属性操作orm字段数据操作
  8. 15 webpack中使用url-loader处理字体文件
  9. String字符串常量池简介
  10. Django连接MySQL数据库配置