所谓一个Django项目,可以理解为部署在一个Web服务器上的Django应用的集合。即,一个Django项目中包含多个Django应用。
打开Django项目的myproject/settings.py文件,可以看到变量INSTALLED_APPS的默认定义如下:
INSTALLED_APPS = [
'django.contrib.admin', 站点管理系统
'django.contrib.auth', 认证系统
'django.contrib.contenttypes', content types框架
'django.contrib.sessions', session框架
'django.contrib.messages', message框架
'django.contrib.staticfiles', 静态文件管理框架
]
content types框架
'django.contrib.sessions', session框架
'django.contrib.messages', message框架
'django.contrib.staticfiles', 静态文件管理框架
]
可以看到,一个Django项目中默认即包含多个Django应用。
事实上,这些Django应用是Django的contrib软件包提供的。为了简化基于Django框架的Web应用的开发,Django以插件的形式提供了大量成熟的辅助应用。
在我们执行django-admin startproject myproject命令,通过模板创建Django项目时,默认即开启了部分辅助应用。
这里,我们介绍Django项目中的Admin应用。由于Admin应用还依赖于auth, contenttypes, sessions和messages应用,所以这些应用默认也一同被开启。
在Admin应用的辅助下,Django的Web应用天然就是一个CMS,即对“管理员发布内容”与“公众浏览公共站点”有清晰的界限。
在进入Admin应用之前,首先要将Django项目中的migrations持久化到数据库中。否则会提示如下错误:
You have 13 unapplied migration(s).
Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
关于Django的migrations机制,我们将在稍后详细介绍,这里你只需要知道其是一种在Django项目与数据库服务器之间的同步机制。
在Django项目路径下执行如下命令即可:
python manage.py migrate
1.创建管理员用户
python manage.py createsuperuser
输入Username:
输入Email address:
输入Password:
输入Password (again):
注意,密码至少8位数,还不能太常见。
2.启动Django开发服务器
python manage.py runserver
3.浏览器打开http://127.0.0.1:8000/admin/
输入Username:
输入Password:
4.在Django administration界面
默认看到如下内容:
5.修改myApp/admin.py,将myApp应用中定义的model类注册到Admin应用中
from django.contrib import admin
from models import MyNewModel
admin.site.register(MyNewModel)
6.Django开发服务器将自动加载更新,刷新浏览器
可以看到新注册到Admin应用中的myApp应用:
参考链接:
https://docs.djangoproject.com/en/1.11/intro/tutorial02/#introducing-the-django-admin