Django Grappelli后台管理
Python3.5版本
django1.11版本
开发工具:pycharm
参考教程:Django1.8.18中文文档,Djnaogo官网,Django Grappelli官网
快速启动指南
-
为了使用Grappelli2.11.1,应该提前安装好Django1.11版本并且Admin 站点管理被激活。
安装
在线安装
pip install django-grappelli(此方法将默认安装最新发布版本)
pip install django-grappelli==2.11.1(按照自己所需版本进行安装)
-
安装包下载(本地安装),如果需要下载最新的安装包,可前往github进行选择下载(安装包下载)
配置
配置文件settings.py并且添加grappelli到你的INSTALLED_APPS中(在django.contrib.admin之前,否则无法生效)
INSTALLED_APPS = [
'grappelli', #需位于admin APP之前
'jango.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
...
]
-
添加URL模式,The grappelli URLs是相关查找和自动完成所必需的。你的admin管理界面通过定义admin.site的路由信息才得以使用:
django==2.*后的写法
from django.urls import path
urlpatterns = [
path('grappelli/', include('grappelli.urls')), # grappelli URLS
path('admin/', admin.site.urls), # admin site
]
focus on: 目前django最新发布版本为2.1系列,2.0之前路由配置使用url()函数,2.0之后使用path()函数;
-
添加请求上下文处理器(仪表板(用词不准)和 用户切换所需)-(项目生成后在setting.py文件中已默认处理)
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')]
,
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
''' 'django.template.context_processors.request', '''
],
},
},
]
- 收集媒体文件
python manage.py collectstatic
focus on:
在执行collectstatic之前,需要对静态文件进行配置
collectstatic的作用是把所有单独APP下的静态文件收集到同一个地方进行维护,大概配置过程如下:
1. 确保静态文件处理APP存在与于INSTALLED_APPS 中
INSTALLED_APPS = [
'django.contrib.staticfiles'
]
2. 静态文件路由及绝对路径配置
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATIC_URL = '/static/'
3.用户上传图片及文件等媒体文件配置
MEDIA_ROOT = os.path.join(BASE_DIR, "static/media")
MEDIA_URL = "/media/"
4.调试模式下开启静态文件服务
from django.conf.urls import url, include
from django.contrib import admin
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
url(r'^admin/', admin.site.urls),
]
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
至此配置成功,更多细节查看django1.8中文文档-静态文件处理
在pycharm下运行collectstatic命令,前后效果对比如下图所示:
测试
- 启动你自己的设备服务并登录到您的管理站点;
-
python manage.py runserver <IP-address>:8000
效果展示: