首页 Python正文

怪不得Django这么好用,原来可以图形化界面管理网站,Django如何创建和删除管理员用户

sanrenxing Python 2022-02-23 111 0 | 文章出自:https://mp.weixin.qq.com/s?__biz=MzI5OTAwNjMzMg==&mid=2694958690&idx=1&sn=af94806c8615f66a6b3b2035f84a3a0f&chksm=c9c84e71febfc7675fe41cd8e2fa8a891fb182fdd7ef6c2447fc26dfd9bb3a3d45cc36eb57b9&token=1375389626&lang=zh_CN#rd Python web框架django图形化管理

Django图形化后台管理界面


数据素材


    知道像小编这样的新手小白太多,Django贴心地提供了图形化管理功能,方便我们对模型数据库进行操作。首先,我们需要创建一个可以登录管理站点的用户。运行以下命令“python3 manage.py createsuperuser”,根据提示输入用户名和密码,密码要确认两次,记得要稍微复杂些哈。

[app@sanrenxing365 mysite]$ python3 manage.py createsuperuser
Username (leave blank to use 'app'): admin
Email address: admin@example.com
Password: 
Password (again): 
The password is too similar to the username.
This password is too short. It must contain at least 8 characters.
This password is too common.
Bypass password validation and create user anyway? [y/N]: y
Superuser created successfully.



使投票应用程序在管理员中可修改

    登录成功后,你会惊喜地发现,除了管理用户,其他似乎啥也干不了。这个时候,我们需要告诉管理员Question对象有一个管理界面。为此,请在polls/admin.py文件中增加如下内容,使投票应用程序在管理员中可修改。

from django.contrib import admin
from .models import Question
admin.site.register(Question)


添加一条新记录

    现在我们就可以添加问题记录了,非常简单,点击“Add”按钮,根据提示页面字段输入就可以了。虽然操作简单,但要注意的知识点还真不少,包括:

表格是从Question模型中自动生成的。

不同的模型字段类型 ( DateTimeField, CharField) 对应于适当的 HTML 输入小部件。每种类型的字段都知道如何在 Django 管理中显示自己。

每个DateTimeField可以获得免费的 JavaScript 快捷方式。日期有一个“今天”快捷方式和日历弹出窗口,时间有一个“现在”快捷方式和一个方便的弹出窗口,其中列出了通常输入的时间。时间好像差了8个小时,那是因为忘记设置正确的值TIME_ZONE,其实是不会。更改它,重新加载页面并检查是否出现了正确的值。

页面底部为您提供了几个选项:

保存 – 保存更改并返回到此类对象的更改列表页面。

保存并继续编辑 - 保存更改并重新加载此对象的管理页面。

保存并添加另一个 - 保存更改并为此类对象加载一个新的空白表单。

删除 – 显示删除确认页面,只有选中一条记录时才会显示。

删除管理员用户

    铁打的公司流水的员工,人来人往是难免的。遗憾的是,Django没有提供命令或窗口直接删除管理员用户,所以需要稍微复杂些,通过进入脚本窗口来操作。

[app@sanrenxing365 mysite]$ python3 manage.py shell
Python 3.8.10 (default, Jan  7 2022, 17:01:54) 
[GCC 8.5.0 20210514 (Red Hat 8.5.0-4)] on linux
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from django.contrib.auth.models import User
>>> User.objects.get(username="admin", is_superuser=True).delete()
(1, {'auth.User': 1})


版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

评论