django1.11,Django Django

  django1.11,Django Django

  学习笔记,仅供参考。

  文章目录管理后台数据库管理使用步骤自定义后台管理数据表配置步骤模型管理器类模型管理器使用方法模型中的高级管理功能管理模型管理器类数据库表管理修改模型类字段的显示名称通过元嵌入类定义模型类的属性和展现形式。

  管理员后台数据库管理

  Django提供了在后台管理数据库的接口admin,我们可以在开发的测试阶段使用它。Django将收集所有注册的模型类,并为这些模型类提供数据管理接口,供开发者使用。

  在开发阶段,使用admin后台数据库管理界面将会非常方便我们进行调试。

  使用步骤

  第一步:创建后台管理账户。

  创建一个管理员帐户,并按照提示完成注册:

  f:\ my studio \ python studio \ goat bishop . project 01 \ Django \ my website _ db python manage . py创建超级用户

  用户名(留空以使用“goat bishop”):dark goat

  电子邮件地址:goatbishop@gmail.com

  密码:

  密码(再次):

  超级用户创建成功。我们需要在用户名处输入用户名,在邮箱处输入邮箱,在密码处输入密码(密码比较复杂,否则会提示密码太简单),在**密码处(再次)* *再次输入相同的密码(Django防止我们第一时间出错)

  第二步:打开服务器pythonmanage.pyrunserver。

  用注册账号登录后台管理界面。后台管理的登录地址是http://127.0.0.1:8000/admin。

  我们向http://127.0.0.1:8000/admin提出请求:

  输入用户名和密码,点击登录,出现如下页面:

  让我们打开用户:

  我们看到,这里有一个表,其中有一条记录,对应于我们的mywebdb数据库中的auth_user数据表:

  mysql选择id,用户名,来自auth_user的电子邮件;

  - - -

   id 用户名电子邮件

  - - -

   1 黑山羊 goatbishop@gmail.com

  - - -

  集合中的1行(0.00秒)

  让我们点击darkgoat,填写名字和姓氏:

  单击保存并查看auth_user数据表:

  mysql从auth_user中选择用户名、名、姓;

  - - -

  用户名名字姓氏

  - - -

  黑山羊杨桂

  - - -

  集合中的1行(0.00秒)已成功更改!

  用户自定义后台管理数据表如果希望自己定义的模型类在/admin后台管理世界中显示和管理,需要在后台管理界面注册自己的类。如果添加自己定义的模型类的后台管理数据表,需要用admin.site.register(用户定义的模型类)方法注册。

  配置步骤在应用程序app的admin.py中导入并注册要管理的模型模型类。我们打开书店应用程序的admin.py并导入模型类:

  从。导入模型

  调用admin.site.register方法从django.contrib导入admin进行注册

  管理员.网站.注册(模型。书)

  #admin.site.register(自定义模型类)

  现在,让我们回到http://127.0.0.1:8000/admin/后台管理界面:

  界面中还有一本书。让我们点击进去看看:

  我们看到了五本书,都是之前手动添加到数据库的。

  现在,让我们点击第一条记录:

  这个接口是Django通过我们的模型类自动生成的。在这个界面中,我们可以修改或删除记录。

  现在,我们对该记录进行以下更改,并单击保存:

  回http://127 . 0 . 0 . 1:8000/admin/book/book/:

  然后我们注册作者并刷新管理数据库管理界面:

  再次单击作者:

  我们发现这里有一堆AuthorObjects (#),没有Books界面显示的那么直观,有利于我们后续的判断。这是因为我们重写了Book模型类的__str__方法,现在,我们也重写了Author模型类的__str__方法。

  models.py

  类作者(模型。型号):

  名称=型号。CharField (name ,max_length=30,null=False,

  unique=True,db_index=True)

  年龄=模特。IntegerField (age,,null=False,

  默认值=1)

  邮件=模特。EmailField(邮箱,null=True)

  def __str__(self):

  String=姓名:{},年龄:{} 。格式(自我姓名,自我年龄)

  Return string记得在更改models.py文件后进行迁移。

  让我们再次刷新界面:

  非常好

  模型管理器类

  模型管理器类可以通过后台管理界面添加新的功能。后台管理器类必须从django.contrib.admin中的ModelAdmin类继承

  如何使用模型管理器

  在应用程序app /admin.py中定义模型管理器类class xxxx _ Manager(admin . model admin ):

  .

  在django.contrib导入管理的应用程序app /admin.py中注册管理器类和模型类

  从。导入模型

  管理员.网站.注册(模型。YYYY,XXXX _经理)

  #注册管理器类与模型类相关联

  #型号。YYYY是一个模型类。

  # tube XXXX_Manager是一个管理器类。

  模型管理器类中的高级管理功能

  班级成员

  功能

  列表_显示

  控制在管理的修改列表页面中显示哪些字段。

  列表_显示_链接

  控制list_display中的字段是否应链接到对象的变更页面。

  列表_过滤器

  在管理员修改列表页面的右栏中设置过滤器。

  搜索_字段

  启用“管理更改列表”页面上的搜索框。

  列表_可编辑

  直接在设置变更列表页面编辑修改字段。

  查看其他https://docs.djangoproject.com/en/1.11/ref/contrib/admin/.

  例如,我们将Book Manager类与Book Model类相关联,并向change list页面添加一些高级功能。

  store应用程序下的Admin.py文件:

  来自django.contrib导入管理

  从。导入模型

  #在此注册您的模特。

  班级图书_管理员(管理员。ModelAdmin):

  list_display=[title , pub , exfacPrice , price]

  list_filter=[pub]

  管理员.网站.注册(模型。作者)

  管理员.网站.注册(模型。Book,book _ manager)向图书更改列表页面http://127 . 0 . 0 . 1:8000/admin/book/book/:

  数据库表管理

  修改模型类字段的显示名称

  在模型类中,每个字段的第一个参数是verbose_name,这个字段的值会显示在后台数据库管理页面上。例如,我们的图书模型类是这样定义的:

  课堂用书(模型。型号):

  标题=模型。CharField (title ,max_length=30)

  Pub=模特。CharField(出版社名称,max_length=50,null=True)

  ExfacPrice=型号。DecimalField(出厂价),

  max_digits=6,decimal_places=2

  默认值=0)

  价格=车型。DecimalField(售价),

  max_digits=6,decimal_places=2

  默认值=0)

  def __str__(self):

  String=标题:%s,出版社:%s% (self.title,self.pub)

  返回字符串让我们检查后台数据库管理页面:

  通过元嵌入类定义模型类的属性和表现形式。

  在模型类中,通过定义内部类类元,可以重新定义当前模型类和数据表的一些属性信息。

  使用类图书(模型。型号):

  title=CharField(.)

  类别元:

  1.db_table=数据表名称

  -此模型使用的数据表的名称。(设置完成后,需要立即更新同步数据库)

  2.verbose_name=单数名称

  -此模型对象的一个易于理解的名称(单数),用于显示在/admin管理界面中。

  3.verbose_name_plural= plural

  -该对象的复数名称(plural),用于在/admin管理界面中显示。

  例如,我们在models.py中添加了一个Publisher模型类,并定义了元内部类:

  类发行者(模型。型号):

  Pub=模特。CharField(出版社名称,max_length=50,null=True)

  书号=型号PositiveIntegerField(初版书籍总量,默认值=0)

  电话=模型CharField(联系电话,max_length=11,null=False)

  类别元:

  db_table=china_publisher

  verbose_name=ChinaPublisher

  verbose _ name _ plural=中国出版商在姜戈壳牌公司中给中国_出版商数据表添加一些数据:

  [2]:从书店导入模型

  在[3]:模型Publisher.objects.create(pub=人民邮电出版社,tele=81055364 )

  Out[3]:发布者:发布者对象(1)

  在[4]:模型Publisher.objects.create(pub=清华大学出版社,tele=62783933 )

  Out[4]:发布者:发布者对象(2)

  在[5]:模型Publisher.objects.create(pub=机械工业出版社,tele=88379833 )

  Out[5]:发布者:发布者对象(3)

  在[6]:模型Publisher.objects.create(pub=电子工业出版社,tele=88258888 )

  Out[6]:发布者:发布者对象(4)打开管理数据库管理界面:

  点开中国出版商:

  查看mywebdb数据库中的数据表们:

  关系型数据库显示表格;

  -

   Tables_in_mywebdb

  -

  授权组

  授权组权限

  授权许可

  授权用户

  授权用户组

  授权用户用户权限

  书店_作者

  书店_书

  中国_出版商

   django_admin_log

   django_content_type

  姜戈迁移

   django_session

  -

  一组13行(0.00秒)可以看到,出版商模型类创建的数据表名字为中国_出版商。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: