Django新项目建立流程

7 阅读3分钟

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_ZONEFalse表示使用上海的时区,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)