django-admin
1.创建orm对应关系(创建数据库)
from django.db import models class MyCharField(models.Field): """ 自定义的char类型的字段类 """ def __init__(self, max_length, *args, **kwargs): self.max_length = max_length super(MyCharField, self).__init__(max_length=max_length, *args, **kwargs) def db_type(self, connection): """ 限定生成数据库表的字段类型为char,长度为max_length指定的值 """ return 'char(%s)' % self.max_length # Create your models here. class Person(models.Model): pid = models.AutoField(primary_key=True) # 主键 name = models.CharField(max_length=32, db_column='username', unique=True, verbose_name='姓名',help_text='填写有效姓名') # varchar(32) # db_column:在数据库里面的name属性的名字,但是在类里面还是叫name # verbose_name:在django admin里面的名称 # help_text:在django admin里面的提示 age = models.IntegerField(null=True, blank=True) # null=ture 在数据库里面可以为空 # blank=true 在django娇艳的时候可以为空 birth = models.DateTimeField(auto_now=True) # auto_now 每次修改都修改为当前日期 phone = MyCharField(max_length=11, null=True, blank=True) gender = models.BooleanField(default=True, choices=((True, '男'), (False, '女'))) # choices:在django admin里面该字段可以显示下拉框选择。数据库中1为True,2位False def __str__(self): return "{}-{}".format(self.pk, self.name) class Meta: # 数据库中生成的表名称 默认 app名称 + 下划线 + 类名 db_table = "person" # django默认生成的数据库名字都是app_类名的形式。该参数可以定制名字 # admin中显示的表名称 verbose_name = '个人信息' # 在django admi # verbose_name加s verbose_name_plural = '所有用户信息' # 联合索引 index_together = [ ("name", "age"), # 应为两个存在的字段 ] # 联合唯一索引 unique_together = (("name", "age"),) # 应为两个存在的字段
2.django admin
1.创建超级用户 python manage.py createsuperuser 输入账号密码,密码要大小写+数字 2.注册 在app下的admin.py中注册 from django.contrib import admin from appname import models admin.site.register(models.persion) 3.登录http://127.0.0.1:8000/admin/login/?next=/admin/ 4.找到对应的表做增删改查
3.使用django-admin添加数据
使用django-admin添加数据
0.在INSTALLED_APPS中添加django.contrib.admin,并且配置url路径 1.创建django-admin的账号 python manage.py createsuperuser # 默认是administrator,密码为8位 root/root@123 2.在app下面的admin.py里面注册表,让其在django-admin中显示 from django.contrib import admin from crm import models # Register your models here. admin.site.register(models.Customer)
在django中自定义要显示的内容
from django.contrib import admin
from rbac import models
# Register your models here.
# 配置类,帮我们在admin里面更好的展示数据内容,是resister的第二个参数
class PermissionAdmin(admin.ModelAdmin):
list_display = ['id','title','url',] # 要展示的字段
list_editable = ['url','title'] # 在admin展示时可以编辑
admin.site.register(models.Menu)
admin.site.register(models.User)
admin.site.register(models.Permission,PermissionAdmin)
admin.site.register(models.Role)
exclude:去除这些列,其他的都显示
fields:显示那些列
fieldsets:管理集合,将信息进行分块显示
list_display:默认要展示的字段
list_editable:在admin展示时可以编辑
in_lines:讲一个对象关联到另一个对象里面
4.了解django-admin
django-admin是django标准库下的django.contrib的一部分
contrib下还包括django.contrib.auth,django.contrib.sessions和django.contrib.comments等
参考资料
开发神器,用于编写自己的开发文档:https://docs.djangoproject.com/en/2.2/ref/contrib/admin/admindocs/
5其他设置
静态文件配置 STSTICFILES_DIRS = [ os.path.join(BASE_DIR,'static'), # 这是一个别名,用static可以等于所有,就是static这个单词是一个符号而已 os.path.join(BASE_DIR,'xxoo'), # static也等于xxoo。 如果要查询一个1.jpg,会先查找static目录下,如果没有的话,会查找xxoo目录下 ] 注册app INSTALLED_APPS = [ 'testapp.apps.TestappConfig', #这个注册会这行下面的类所在的文件,可以执行一些其他功能 'testapp' #这种注册,只是人生这个app,没有什么功能 ] 模板设置 TEMPLATES = [ 'DIRS':[os.path.join(BASE_DIR,'template')] ] csrf认证注释 MIDDLEWARE = [ # 'django.middleware.csrf.CsrfViewMiddleware', ] 数据库注释 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': '23day54', 'HOST': '127.0.0.1', 'PORT': 3306, 'USER': 'root', 'PASSWORD': 'root@123', } } 注意: 在setting所在目录的init.py文件里面或者是settings文件里面或者是任意一个能执行的文件里面加上 import pymysql pymysql.install_as_MYSQLdB; 将使用pymysql模块,来代替mysqldb模块 配置settings,以后在遇到时间戳格式的会自动转成看得懂的时间格式 USE_L10N = False DATETIME_FORMAT = 'Y-m-d H:i:s' DATE_FORMAT = 'Y-m-d' 开启debug DEBUG = True 允许全部访问 ALLOWED_HOSTS = ['*'] 应用setting配置文件 from django.conf import settings
pass
上帝说要有光,于是便有了光;上帝说要有女人,于是便有了女人!
浙公网安备 33010602011771号