Django新项目建立流程
1. Django的安装
pip install django
查看安装的django版本:python -m django --version
2. 创建项目
django-admin startproject <项目名称>
3. 修改项目常规配置
修改文件:settings.py
3.1. 修改时区
TIME_ZONE = 'UTC'
# 改为
TIME_ZONE = 'Asia/Shanghai'
3.2. 设置中文
LANGUAGE_CODE = 'en-us'
# 改为
LANGUAGE_CODE = 'zh-Hans'
3.3. 修改时间存储时区
默认是
UTC
这个看个人对读取数据库的需求,本身框架会对时间进行转换
数据库是否使用TIME_ZONE
,False
表示使用上海的时区,True
表示不使用,使用UTC
时间,然后转成上海,会差8个小时
USE_TZ = False
4. 创建应用
python manage.py startapp <应用名称>
4.1. 注册新建的应用
修改文件:settings.py
INSTALLED_APPS = [
'<应用名>',
# 或者:
# '<应用名>.apps.<应用名(首字母大写)>Config',
]
注意: 如果你使用的
Django
版本很低或希望避免自己的app
名与第三方库的app
名冲突,你需要使用blog.apps.BlogConfig
替换blog
。(旧版本,或者防止冲突) 新版本可以直接使用名称
4.2. 引入应用url路由
新建APP的urls.py
模板同项目
修改项目urls.py
,引入include
模块、本地views
文件
from django.urls import include, path
urlpatterns = [
path('<url>/', include('<应用>.urls')),
]
5. 数据库设计与建立
数据库定义在models.py
当中
5.1. 迁移数据库命令
# 模型的更改情况生成迁移文件
python manage.py makemigrations <应用>
python manage.py migrate
6. 视图编写
6.1. 模板文件
渲染 HTML 使用
默认情况下:模板引擎将在项目的所有应用目录中搜索模板文件
在应用目录下建立templates
文件夹
在应用在templates
目录下的文件将会共享,如果害怕模板文件冲突的情况下可以在templates
的文件夹内建立应用名称的文件夹,也可以将应用名称添加到模板文件名上
通常采用应用名称隔离的方式
DIRS
为空时,模板文件需放置在[应用]\templates\[应用]
文件夹中
templates目录为根目录,引入地址为[应用]/[引入文件]
6.2. 静态文件
默认情况下:将在项目的所有应用目录中搜索静态文件,部署时要通过静态收集将静态文件汇聚在一起
在应用目录下新建static
文件夹
在应用在static
目录下的文件将会共享,可以通过建立应用名称的文件夹进行隔离
通常采用应用名称隔离的方式
目录类模板文件存放[应用]\static\[应用]
static目录为根目录,引入地址为[应用]/[引入文件]
{% load static %}<!--必须引入项-->
<img src="{% static 'my_app/example.jpg' %}" alt="My image"><!--引入模板-->
如是采用模板开发可以将static
文件放在统一的位置
修改settings.py
文件,static
放在根目录下
STATICFILES_DIRS = [
Path(BASE_DIR).joinpath('static')
]
6.3. 路由
这个是位于应用内新建立的
urls.py
,当然这个也是看个人习惯,这个是按照官方可拔插的写法,路由最好是解耦放置
urlpatterns = [
path("<url>/", views.<视图函数或类>)
]
7. 账号管理
通过命令创建超级管理员账户
创建前需要先迁移数据库 自带的账号管理是通过auth模块实现,具体模块详细见
python manage.py createsuperuser --username=admin --email=admin@example.com
7.1. 命令行修改账号密码
# 提供了在命令行修改用户密码的方法
python manage.py changepassword <username>
8. 项目启动
启动项目,用来测试项目功能
python manage.py runserver
python manage.py runserver 8080
python manage.py runserver 0:8000
# 禁止使用静态文件
django-admin runserver --nostatic
# 强制使用静态文件
django-admin runserver --insecure
9. 可选项目初始化内容
9.1. 初始化媒体文件
在settings
中配置MEDIA_ROOT
, 就是指定文件上传的路径选项
MEDIA_URL = 'media/'
MEDIA_ROOT = BASE_DIR / 'media'
9.1.1. 开发期间保存用户上传的文件
# urls.py
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
# ... the rest of your URLconf goes here ...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)