入门理解:
应用背景:后台管理系统、流程管理系统、小型信息平台
功能:微小型平台,增、删、改、查
笼统理解:
django框架自带admin 管理系统。即django包含:程序平台+管理系统。程序平台为我们日常开发所需,针对特定逻辑实施特定开发。管理系统主要做平台权限管控,角色分组,访问权筛选等。是程序平台的管理者。
该框架适合小型平台开发,集成能力强,开发简单 易懂。
话不多说,直接上案例!
项目举例:
人力资源绩效填报系统
主要功能:完成整个绩效考核新增,填报,审核,汇总的流程,并伴随其它细节性小功能。
语言:python 3.6
django 2.0.1
pymysql 0.9.1
前期准备:
准备好py环境,django框架,pip国内镜像,mysql数据库
github上或者博客上都有现成的框架例子。
程序构成:主程序+项目App
主程序:
日常开发中,主程序主要接触的无非是三个文件,根目录的manage.py 、setting.py 、url.py
1.manage.py是项目的启动入口,可以在pycharm上的terminal 直接启动 命令:python manage.py runserver
也可以控制台启动,edit configutations 中
Script path 改为manage.py
parameters 改为 runserver 0.0.0.0:8080 本机8080端口启动
2.settings 主要存放 公共系统配置,其中
INSTALLED_APPS 存放app名字 例如:
INSTALLED_APPS = [ 'django_crontab','django_apscheduler']
每增加一个新的项目App,都要在该处后续添加app名称。否则程序平台无法访问该App。
ALLOWED_HOSTS = ['*'] 允许所有互通的host访问
CRONJOBS = ( ('*/5 * * * *', 'app.def_name), ) 等同于linux下的crontab 调度。此处为django-crontab 内嵌了该功能
提示:因crontab是Linux 系统内嵌的功能,所以windows下无法使用,需要windows调用,可换其他调度工具,后面会介绍
ROOT_URLCONF 主程序url
DATABASES 数据库配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': '', 'PASSWORD': '', 'HOST': '', 'PORT': '3306', }, }
TIME_ZONE = 'Asia/Shanghai' 时区与服务器统一
LOGIN_URL = '/login.html' 程序入口网址为:xxxx:8080/login.html
REGEX_URL = r'^{url}$' # url作严格匹配
SAFE_URL = [] 白名单。包含login.html 每一个app.url 都需添加 例如:
SAFE_URL = [r'/login.html','/kpi/'] kpi 为本项目 APP—name
3. url.py
url.py 是指主程序的url ,封装多个app.url, 也是上文2. 提到的 ROOT_URLCONF 主要包含
urlpatterns = [url(r'^kpi/', include('kpi.urls'))]