一、Django引入
1.1 Django介绍
组件:
- 基本配置文件/路由系统
- 模型层(M)/模板层(T)/视图层(V)
- Cookies和Session
- 分页和发邮件
- Admin管理后台
Django官网:http://www.djangoproject.com
Django中文文档参考网站:https://yiyibooks.cn
版本
- 最新版本3.0.x
- 当前教学版本2.2.12
安装(采用Linux虚拟机)
支持Python的版本 - 3.5, 3.6, 3.7, 3.8
在线安装
- 虚拟机执行 sudo pip3 install django==2.2.12
- 检查是否成功 sudo pip3 freeze|grep -i 'Django
离线安装
- 将安装包复制到虚拟机
- 解压缩 tar -xvf Django-2.2.12.tar.gz
- 进入目录 cd Django-2.2.12
- 执行安装 sudo python3 setup.py install
- sudo pip3 freeze|grep -i ‘Django’
1.2 Django项目结构
-
成功安装Django后,虚拟机终端会有django-admin命令
-
执行django-admin startproject 项目名,即可创建出对应项目文件夹
-
例如:终端执行django-admin startproject mysite1;则创建出mysite1项目
-
启动[测试开发阶段]
1.终端cd进入到项目文件夹,例如cd mysite1
2.进入到项目文件夹后,执行python3 manage.py runserver启动django服务【注:该启动方式下,Django在前台启动服务,默认监听8000端口】
3.浏览器访问http://127.0.0.1:8000可看到django的启动页面
注:【如果想更换端口,可以用python3 manage.py runserver 端口号】
-
关闭服务
方式1:在runserver启动终端下执行Ctrl+c
方式2:在其他终端下
- 执行sudo lsof -i:8000查询出Django的进id
- 执行kill -9 对应Django进程id
问题:启动时报错
Error:That port is already in use.
问题原因:端口已被使用,证明当前Django启动时,默认监听的8000端口已被其他进程占用
解决方案:参考关闭服务
-
manage.py包含项目管理的子命令,如:
python3 manage.py runserver 启动服务
python3 manage.py startapp 创建应用
python3 manage.py migrate 数据库迁移
-
项目同名文件夹 - mysite1/mysite1
- _init_: Python包的初始化文件
- wsgi.py: Web服务网关的配置文件 - Django正式启动时,需要用到
- urls.py: 项目的主路由配置 - HTTP请求进入Django时,优先调用该文件
- settings.py: 项目的配置文件 - 包含项目启动时需要的配置
-
settings.py
settings.py包含了Django项目启动的所有配置项
配置项分为公有配置和自定义配置
配置项格式例:BASE_DIR = 'xxxx’
公有配置 - Django官方提供的基础配置
https://doces.djangoproject.com/en/2.2/ref/settings
-
DEBUG
True - 调试模式
1.检测代码改动后,立刻重启服务
2.报错页面
False - 正式启动模式/上线模式
-
ALLOWED_HOSTS
请求头Host头,表示只有该Host头才能访问
-
INSTALLED_APPS - 指定当前项目中安装的应用列表
-
MIDDLEWARE - 用于注册中间件
-
TEMPLATES - 用于指定模板的配置信息
-
DATABASES - 用于指定数据库的配置信息
-
LANGUAGE_CODE - 用于指定语言配置
- 英语:“en-us”
- 中文:“zh-Hans”
-
TIME_ZONE - 用于指定当前服务器端时区
世界标准时间:“UTC”
中国时区:“Asia/Shanghai”
-
ROOT_URLCONF - 用于配置主url配置’mysite1.urls’
ROOT_URLCONF = ‘mysite1.urls’
-
自定义配置
名字尽量个性化 - 以防覆盖掉公有配置
例如:ALIPAY_KEY = ‘xxxxxx’
引入方式:from django.conf import settings