Django 2.0 学习(05):Django Admin
Django Admin
站点的管理者,而非访问者。
创建admin用户
首先,执行下面命令:
python manage.py createsuperuser
其次,输入用户名和密码:
Username:admin
在输入用户名之后,会提示输入邮箱地址,随便输入即可:
Email address:admin@example.com
最后,输入密码(最好使用数字和字符的组合,不然会被提示密码过于简单):
Password: **********
Password (again): *********
Superuser created successfully.
至此,admin用户就创建成功了。
服务启动
Django的admin站点默认是激活的,我们只需要启动Django服务,访问admin站点即可:
1、 启动Django服务:
python manage.py runserver
2、打开浏览器,访问地址http://127.0.0.1:8000/admin/,将会看到下面admin的登陆界面:
3、输入之前创建的admin用户的用户名、密码登入系统,将会看到如下如所示:
4、我们看到只有:Groups和Users这两个可编辑的内容;这两部分内容来自于django.contrib.auth,Django自带的认证框架
如何在admin site中管理我们自己的app(使我们自己的app也可以在admin中可修改/被管理)?
为了解决这个问题,我们只需要告诉admin,Question对象有一个admin接口,可以像下面这样修改polls/admin.py文件:
from django.contrib import admin
from .models import Question
admin.site.register(Question)
注:在Django的机制中,当我们修改了现有代码无需重启服务,Django会自动刷新服务识别到新的代码;但是当我们添加了新的文件或者模块,需要手动重启服务才可以
当我们再次访问Django admin站点或者刷新刚才的admin站点页面,会看到如下图所示界面:
点击Questions,进入修改questions页面,该页面显示了数据库中所有的questions,当前页面只有"What's up?"这个之前创建的question:
点击"What's up?"question,可以对其进行修改:
注意以下几点:
- 该表单是根据Question数据模型自动生成的;
- 不同数据模型的字段显示相应的HTML输入框宽度,换句话说:Django admin自己直到每种数据模型字段如何显示;
- 每个DateTimeField字段的Dates取值:Today;times取值:Now;
页面的底部列出了一些可选项:
- Save:保存修改,返回上一页面;
- Save and continue editing:保存修改,重新加载修改页面并提示修改成功,可以继续修改;
- Save and add another:保存修改,重新加载一个新的、空的表单;
- Delete:跳转到是否删除的确认页面;
时区和语言
当我们修改或者新建question的时候,会发现"Date published"的时间和本机时间不一致,如下图所示:
仔细看,我们会发现在Time:Now的下面又一小行灰色的提示:Note:You are 8 hours ahead of server time.出现该问题的原因是,我们没有修改TIME_ZONE配置。打开mystie/settings.py文件,做如下修改:
TIME_ZONE = 'Asia/Shanghai'
重新加载页面,我们将会看见时间已经恢复到我们系统时间,并且Time下面的灰色提示也消失了:
我们可以通过"Today"、"Now"这两个快捷方式来修改"Date pbulished"的值,修改完成之后点击"Save and continue editing";然后点击页面右上角的"History",我们将会看见一个列表页面,里面记录了对该条目数据修改的完整记录,包括:日期/时间、用户、操作,如下图所示:
中文配置如下所示:
LANGUAGE_CODE = 'zh-hans'
最终效果如下图所示:
Django 2.0 学习(05):Django Admin的更多相关文章
- Django 2.0 学习(07):Django 视图(进阶-续)
接Django 2.0 学习(06):Django 视图(进阶),我们将聚焦在使用简单的表单进行处理和精简代码. 编写简单表单 我们将用下面的代码,来替换之前的detail模板("polls ...
- Django 2.0 学习(04):Django数据库
数据库设置/配置 打开mysite/settings.py,我们会发现Django是用的是默认的数据库SQLite,如下图所示: Django也是支持其它数据库的,比如PostgreSQL.MySQL ...
- Django 2.0 学习(12):Django 模板语法
Django 模板语法 一.模板 只要是在html里面有模板语法就不是html文件了,这样的文件就叫做模板. 二.模板语法 模板语法变量:{{ }} 在Django模板中遍历复杂数据结构的关键是句点字 ...
- Django 2.0 学习
Django django是基于MTV结构的WEB框架 Model 数据库操作 Template 模版文件 View 业务处理 在Python中安装django 2.0 1 直接安装 pip inst ...
- Django 2.0 学习(19):Django 分页器
Django 分页器 要使用Django实现分页功能,必须从Django中导入Paginator模块(painator - 分页器) views.py from django.shortcuts im ...
- Django 2.0 学习(10):Django 定制化
定制化admin表单 通过使用admin.site.register(Question)注册Question模型,Django可以构造默认的表单.通常,可以通过对象的注册机制来告诉Django我们想要 ...
- Django 2.0 学习(08):Django 自动化测试
编写我们的第一个测试 确定bug 幸运的是,在polls应用中存在一个小小的bug急需修复:无论Question的发布日期是最近(最后)的日期,还是将来很多天的日期,Question.was_publ ...
- Django 2.0 学习(06):Django 视图(进阶)
概述 Django中的特方法,该方法代表了Django的Web页面,并且视图具有特定的模板.以博客应用为例进行说明,在博客应用中应该包含下面的视图: 博客主页:显示最近的一些记录: 详细页面:单个详细 ...
- Django 2.0 学习(01):Django初识与安装
Django(Python Web框架) Django是一个开放源代码的Web框架,用Python写的.采用了MTV的框架模式,即模型M,模板T和视图V.它最初被开发是用来管理以新闻内容为主的网站,即 ...
随机推荐
- 路由追踪:traceroute/tcptraceroute
一.工作原理 traceroute:IP路由过程中对数据包TTL(Time to Live,存活时间)进行处理.当路由器收到一个IP包时,会修改IP包的TTL(及由此造成的头部检验和checksum变 ...
- ORB-SLAM(七)ORBextractor 特征提取
该类中主要调用OpenCV中的函数,提取图像中特征点(关键点及其描述,描述子,以及图像金字塔) 参考TUM1.yaml文件中的参数,每一帧图像共提取1000个特征点,分布在金字塔8层中,层间尺度比例1 ...
- redis 学习笔记三
一.redis 复制 数据库复制指的是发生在不同数据库实例之间,单向的信息传播的行为,通常由被复制方和复制方组成,被复制方和复制方之间建立网络连接,复制方式通常为被复制方主动将数据发送到复制方,复制方 ...
- CentOS 使用PostFix搭建邮件服务器
搭建环境: 关于PostFix是什么以及邮件服务器接受发送邮件流程网上有很多文章,这里就不再写了,这里只记录如何搭建邮件服务器,使用PostFix接受发送邮件 CentOS6.8 32位,postfi ...
- 记录---Testin上新手测试用例设计实战---碎乐3.2.0
平台上给的版本是碎乐3.12版的,但是平台上给的安装包下载不了,所以加群咨询之后给出了直接去手机应用商店下载搜索到的版本的对策.所以就那应用商店中找到的3.2.0版本来设计测试用例.因为任务中没有给出 ...
- [C++]STL中的容器
C++11 STL中的容器 一.顺序容器: vector:可变大小数组: deque:双端队列: list:双向链表: forward_list:单向链表: array:固定大小数组: string: ...
- 本地矩阵(Local Matrix)
本地矩阵具有整型的行.列索引值和双精度浮点型的元素值,它存储在单机上.MLlib支持稠密矩阵DenseMatrix和稀疏矩阵Sparse Matrix两种本地矩阵,稠密矩阵将所有元素的值存储在一个列优 ...
- Visaul Studio 密钥
vs professional 2015 简体中文版 :HMGNV-WCYXV-X7G9W-YCX63-B98R2
- Elasticsearch 排序插件的开发
直接观察到的几个问题 简单expression脚本的执行效率 > java 插件,10000条数据可以测试出1ms左右的差距. Es会不断调用newScript来创建"足够多" ...
- python3中使用python2中cmp函数出现错误
在python2中我们经常会使用cmp函数来比较一些东西,但是在python3中,你再来使用这个函数的时候,发现就报错了,提示找不到这个函数,这是为啥呢? 答:新版的python已经舍弃这种用法 而在 ...