准备工作
对于初学python想要开发网站,我一般推荐django,其中一个很重要的原因就是它提供了一个网站管理模块,这个能够省去很多工作。下面我讲讲如何使用这个管理后台。
一般来说,我们创建一个项目HelloWorld,那么该项目下的目录与文件如下图所示:
1 | |-- HelloWorld |
这里几个文件的作用如下:
- HelloWorld: 项目的容器。
- manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。
- HelloWorld/init.py: 一个空文件,告诉 Python 该目录是一个 Python 包。
- HelloWorld/settings.py: 该 Django 项目的设置/配置。
- HelloWorld/urls.py: 该 Django 项目的 URL 声明; 一份由 Django 驱动的网站”目录”。
- HelloWorld/wsgi.py: 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。
Django 自动管理工具是 django.contrib 的一部分。你可以在项目的 settings.py 中的 INSTALLED_APPS 看到它:
1 | INSTALLED_APPS = ( |
为了激活自动管理工具,我们需要在urls.py中添加:
1 | urlpatterns = [ |
做好上述准备后,启动开发服务器,然后在浏览器中访问 http://127.0.0.1:8000/admin/,就会有一个登录窗口出现,这个表明后台管理工具已经可以使用了。
为了创建管理账号,我们需要在命令号运行python manage.py createsuperuser 来创建超级用户。
到此为止,后台管理工具已经可以用了。
设置中文界面
django后台默认是英文界面,对于中文用户来说就不方便了,这里只要在settings.py 中 把LANGUAGE_CODE = ‘en-us’改成LANGUAGE_CODE = ‘zh-Hans’即可。
顺便把设置TIME_ZONE = ‘Asia/Shanghai’ 。
model准备
最近要为学科评估开发一个信息系统,所以在项目目录下添加models.py文件,并在其中添加了相应的数据模型,其中大部分都是如下样子。
1 | class user(models.Model): |
这里的verbose_name主要是为了后台管理界面中把相应的列名变成这里指定的名称,否则会直接显示列名
内部类Meta可以认为是为这个类的一些显示与数据库操作服务的,这里的db_table是用于指定自动生成数据表时的表名,verbose_name指定这个类在显示的时候的名称,verbose_name_plural是用到复数时候自动会添加s,这里我们改变它的行为,直接用类的名称来替代,因为中文里没有单复数的概念。
创建好模型后,按这些模型创建数据表,执行下列命令:
1 | $ python manage.py makemigrations HelloWorld # 让 Django 知道我们在我们的模型有一些变更 |
注册model
做好上述准备后,最后还要在项目目录下添加admin.py,并在其中注册上面写的model。
1 | from django.contrib import admin |
到这里为止,我们就可以在后台管理里面去添加、删除、修改、查找这些model所对应的信息了。
接下来的问题就是,很多添加、修改、删除以及查找的界面都是默认的,很多不是我们希望的样子,所以接下来就是如何来定制admin后台管理界面了,这些我们另外再写。