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

posted @ 2019-09-03 16:01  thep0st  阅读(63)  评论(0)    收藏  举报