Django 测试开发3 数据模型models和admin管理工具
参考: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。配置文档也在我的随笔中。
Django 测试开发3 数据模型models和admin管理工具的更多相关文章
- Django框架 之 admin管理工具(组件使用)
Django框架 之 admin管理工具(组件使用) 浏览目录 激活管理工具 使用管理工具 admin的定制 admin组件使用 Django 提供了基于 web 的管理工具. Django 自动管理 ...
- Django——admin管理工具
一.admin组件使用 Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.你可以在项目的 settings.py 中的 INSTAL ...
- admin管理工具
admin组件使用 Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.你可以在项目的 settings.py 中的 INSTALLE ...
- 自定义admin管理工具(stark组件)
自定义admin管理工具(stark组件) 创建项目 了解了admin的功能后,我们可以开始仿照admin编写我们自己的管理工具stark组件 首先创建一个新的项目,并创建三个app stark就是我 ...
- 10.5Djang admin 管理工具
2018-10-5 17:30:57 Django admin 管理工具 参考连接: https://www.cnblogs.com/yuanchenqi/articles/8323452.html ...
- django测试开发-1.开始Hello django!
用python开发出一个web页面的时候,需要找一个支持python语言的web框架.django框架有丰富的文档和学习资料,也是非常成熟的web开发框架,本篇写一个简单的“hello django! ...
- 吴裕雄--天生自然Django框架开发笔记:Django Admin 管理工具
Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.可以在项目的 settings.py 中的 INSTALLED_APPS 看到它: ...
- Django 测试开发2
1.get方法和post方法 get方法 post方法 直接把method修改成post,报错如下,Django针对CSRF的保护措施是在生成的每个表单放置一个自动生成的令牌,通过这个令牌判断POS ...
- Django Web开发【4】 用户注册与管理
几乎所有的网站都提供了用户注册与管理功能,这一节,我们将讲解如何利用Django自身提供的用户认证系统实现用户注册与管理功能. 会话认证 在上一节中,我们学习了User数据模型,并用它来保存用户信息, ...
随机推荐
- 深入浅出Git(偏向理论)
目录 一.理论概述 1. 什么是Git 版本控制系统分类 2. GitLab和GitHub是什么 3.Git功能 二.结合具体命令了解其工作 1.环境 2.部署 Git仓库的使用 简单命令解释 Git ...
- Linux命令——logger
参考:How to use logger on Linux Difference between /var/log/messages, /var/log/syslog, and /var/log/ke ...
- 如何在windows server2016搭建DHCP服务器
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议.指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分 ...
- Linux系统Zip压缩和解压缩
Linux系统可以使用Zip来压缩占用空间较大的文件以便进行文件传输,传输完成后再进行解压缩来获取原文件.Linux安装Zip的命令为 apt-get install zip 安装完成后,使用 zip ...
- 分享一个自制的USB转HART模块
HART协议是一种用于现场智能仪表和控制室设备之间的通讯协议.使用USB转HART模块可以很方便的对HART总线上的数据进行监控,并且可以远程控制.操作和校准HART设备.设计的模块主要采用的是USB ...
- Android加载大图到内存如何避免内存溢出?
加载大图怎么避免溢出实际做法就是对图像进行压缩,也是比较老的话题了,在最初做android时是经常会遇到的问题,而如今对于图片加载这一块都已经有很成熟稳定的三方库来弄它了,所以图片加载过大内存溢出的比 ...
- 利用socketserver模块的简单功能来完成一个多线程消息传递
客户端:客户端的代码无需改动 import socket client = socket.socket() client.connect(("127.0.0.1",8777)) w ...
- 【转】用 Consul 来做服务注册与服务发现
原文:https://segmentfault.com/a/1190000018731395?utm_source=tag-newest ------------------------------- ...
- centOS7 下 安装mysql8.x
第一部分 CentOS7安装mysql1.1 安装前清理工作:1.1.1 清理原有的mysql数据库:使用以下命令查找出安装的mysql软件包和依赖包: rpm -pa | grep mysql 显示 ...
- Linux下卸载mysql8.x版本
一.停止MySQL [root@localhost /]# service mysqld stop 二.查看当前安装mysql情况,查找以前是否装有mysql [root@localhost /]# ...