参考: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管理工具的更多相关文章

  1. Django框架 之 admin管理工具(组件使用)

    Django框架 之 admin管理工具(组件使用) 浏览目录 激活管理工具 使用管理工具 admin的定制 admin组件使用 Django 提供了基于 web 的管理工具. Django 自动管理 ...

  2. Django——admin管理工具

    一.admin组件使用 Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.你可以在项目的 settings.py 中的 INSTAL ...

  3. admin管理工具

    admin组件使用 Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.你可以在项目的 settings.py 中的 INSTALLE ...

  4. 自定义admin管理工具(stark组件)

    自定义admin管理工具(stark组件) 创建项目 了解了admin的功能后,我们可以开始仿照admin编写我们自己的管理工具stark组件 首先创建一个新的项目,并创建三个app stark就是我 ...

  5. 10.5Djang admin 管理工具

    2018-10-5 17:30:57 Django admin 管理工具  参考连接: https://www.cnblogs.com/yuanchenqi/articles/8323452.html ...

  6. django测试开发-1.开始Hello django!

    用python开发出一个web页面的时候,需要找一个支持python语言的web框架.django框架有丰富的文档和学习资料,也是非常成熟的web开发框架,本篇写一个简单的“hello django! ...

  7. 吴裕雄--天生自然Django框架开发笔记:Django Admin 管理工具

    Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.可以在项目的 settings.py 中的 INSTALLED_APPS 看到它: ...

  8. Django 测试开发2

    1.get方法和post方法 get方法  post方法 直接把method修改成post,报错如下,Django针对CSRF的保护措施是在生成的每个表单放置一个自动生成的令牌,通过这个令牌判断POS ...

  9. Django Web开发【4】 用户注册与管理

    几乎所有的网站都提供了用户注册与管理功能,这一节,我们将讲解如何利用Django自身提供的用户认证系统实现用户注册与管理功能. 会话认证 在上一节中,我们学习了User数据模型,并用它来保存用户信息, ...

随机推荐

  1. Python_关键字列表

    1.Python关键字列表

  2. 利用random模块做一个抢红包功能

    我们都知道random模块是一个生成随机数的模块,用它来做抢红包的功能很合适. 抢红包,抢到的金额是随机的,但怎么让每个人抢到的随机金额公平合理呢 比如:我想发一个100元的红包让10个人抢,我可以把 ...

  3. MySQL进阶15--TCL事务控制语言--建立结束事务/设置断点--默认隔离级别--脏读/幻读/不可重复读

    #TCL事物控制语言 : /* Transaction control language : 事物控制语言 事务: 一个或者一组sql语句组成一个执行单元,这个执行单元要么全部执行,要么全部不执行; ...

  4. mysqlcheck(MyISAM表维护工具)

    mysqlheck [option] db_name [tables] -c --check(检查表) -r  --repair(修复表) -a  --analyze(分析表) -o  --optim ...

  5. Linux下安装nginx实现伪分布

    1.安装 Nginx 的编译环境 gcc yum install gcc-c++ 2.nginx 的 http 模块使用 pcre 解析正则表达式,所以安装 perl 兼容的正则表达式库 yum in ...

  6. Redis vs kafka

    kafka的订阅可以重复消费,但redis的不行,只能收到订阅之后发布的数据 redis无法实现消息堆积和回溯 1 Redis是个数据库,可以改.查,而KFAKA 不能改查2 redis是内存数据库, ...

  7. element案例大杂烩

    修改表头字体粗细? <el-table :data="list" header-row-class-name="tableHead"> 自定义即可 ...

  8. 使用quickstart方式快速搭建maven工程

    通常idea 创建maven工程,初始化会比较慢,针对这种现象.我们可以使用一些巧妙的方式来帮助快速搭建 废话不多说直接上图! 图1 使用 archetype-quickstart  选择 图二 点击 ...

  9. postgrepSQL psql基础操作

    1.登录postgrepSQL psql 2.退出postgrepSQL \q 3.查看postgrepSQL里面的数据库 1)psql -l 2)\ l 4.切换DB \c db_name 5.查看 ...

  10. luogu 3380

    树状数组套权值线段树 #include <iostream> #include <cstdio> #include <algorithm> #include < ...