(欢迎光临差–点先生博客)
个人向:Django后台系统搭建笔记
(本文使用PyCharm 2022 Professional版,自带Django3.2.12,直接创建即可)
一、搭建Django
-
启动Django:
python manage.py runserver
,访问测试:127.0.0.1:8000
-
创建应用:
python manage.py startapp xxxxx
, 创建完后将App加入你的Django项目里面,在settings.py
的INSTALLED_APPS
加入新建的App
-
创建测试页面,在新建的App里面加入
templates
文件夹,文件夹内创建test.html
页面
-
编写视图
views.py
处理函数,以调用测试页面返回渲染
ps:这里也可以不创建html测试,直接编辑视图处理函数使用返回页面效果,使用HttpResponse
-
配置访问路由
urls.py
,先将views
目录下的test
函数加来,再增path
访问路由路径from my_app.views import test urlpatterns = [ path('admin/', admin.site.urls), path('', test) ]
-
再启动服务
python manage.py runserver 127.0.0.1:8001
即可看到页面效果,这里我部署在127.0.0.1:8001
上
二、静态文件访问配置
-
setting
里面设置STATIC_URL = '/static/'
-
setting
底部加入静态文件路径STATICFILES_DIRS = [ os.path.join(BASE_DIR, "static"), ]
三、启动后台管理系统
- 命令行输入:
python manage.py migrate
,完成文件迁移即可访问后台管理系统http://127.0.0.1:8001/admin
- 创建管理员账号:
python manage.py createsuperuser
- 创建迁移文件命令:
python manage.py makemigrations
- 设置后台语言和时区
LANGUAGE_CODE = 'zh-Hans'
,TIME_ZONE = 'Asia/Shanghai'
四、启用MySQL
-
在
settings.py
里面修改默认databaseDATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': '数据库名称(注意不是表名称)', 'HOST': 'localhost', 'PORT': '3306', 'USER': 'root', 'PASSWORD': '密码', } }
-
在要调用到数据库的App文件夹的
_init_.py
文件内加入,记得要pip install pymysql
import pymysql pymysql.install_as_MySQLdb()
-
输入命令:
python manage.py inspectdb > show_models.py
即可获得已创建的mysql数据库对应Django映射关系的models,再将App下的models
内容进行一定的增加与替换即可实现Django操作已存在的mysql数据库
五、后台管理系统选择要展示的数据
在admin里面添加后台管理类继承于admin.ModelAdmin,此类再注册register
到后台内即可显示
from .models import ProductInfo # 在view里面创建的对应数据模型导入
class productInfo_Admin(admin.ModelAdmin):
list_display = [xxx] # 选择要展示的数据,字段为模型对应的字段
search_fields=[xxx] # 搜索框
list_filter=[xxx] # 筛选框
admin.site.register(ProductInfo, productInfo_Admin) # 完事之后注册在后台上
admin.site.site_header = 'xxx' # 后台登陆界面的标题,一个APP设置全部通用
六、数据起别名
-
后台登陆页别名,任意一app末尾添加
admin.site.site_header = 'xxx系统'
-
App别名:在
_init_.py
里面添加,官方固定写法,难以理解from os import path from django.apps import AppConfig VERBOSE_APP_NAME = '测试模块' def get_current_app_name(file): return path.dirname(file).replace('\\', '/').split('/')[-1] class AppVerboseNameConfig(AppConfig): name = get_current_app_name(__file__) verbose_name = VERBOSE_APP_NAME default_app_config = get_current_app_name( __file__) + '.__init__.AppVerboseNameConfig'
- 大模块对应的下拉模块别名:对应App的
models
底部模型类内底部嵌入meta
类加入:class Meta: verbose_name_plural = "下拉模块别名" verbose_name = "信息详情别名" managed = True db_table = '数据库表名' # 要使用的数据库表名称 ordering = ('id',) # 数据排序依据字段’id’为正序’-id’为逆序
七、Django后台美化,simpleui的使用
-
先安装
pip install django-simpleui
-
加入App,
setting
里面INSTALLED_APPS
顶部 加入'simpleui',
-
simpleui
相关设置SIMPLEUI_LOGO = '../static/xxx.ico' (也可以填链接) SIMPLEUI_LOGIN_PARTICLES = True # 页面动态粒子动画开关 SIMPLEUI_HOME_INFO = False # 后台首页右侧git导航链接开关 SIMPLEUI_ANALYSIS = False # 后台首页咨询开关 SIMPLEUI_HOME_QUICK = True # 快捷栏开关 SIMPLEUI_HOME_ACTION = True # 操作日志开关
八、后台数据展示效果相关设置
对应App下的admin的待注册入后台的数据管理类设置:
class productInfo_Admin(admin.ModelAdmin):
list_display = [字段] # 要展示的字段
search_fields = [字段] # 搜索框使用的字段
list_filter = ['activity_type', 'discount'] # 筛选框
list_editable = ['id_code'] # 字段是否可编辑
list_per_page = 2 # 每页显示数据数
list_display_links = ['id_code'] # 进去查看信息详情的字段
ordering = ['id'] # 数据默认排序方式,字段前加个“-”表示逆序