一、Django简介
Python 语言写的开源web开发框架
Django 目的是简便、快速的开发数据库驱动的网站.
Django 强调代码复用,有许多功能强大的第三方插件.
Django 遵循MVC设计模式. 有一个专有名词 :MVT
1.1 MVT介绍
-
MVT
核心思想 : 解耦 - Django, 研究 Model-View-Template 模块间协同工作、如何编模块代码
M (模型)Model, 用于和数据库交互, 负责数据处理(数据的增删改查), 内嵌了ORM框架.
V (视图)View, 用于接收GET或POST请求, 接收HttpRequest, 业务处理,返回HttpResponse.
T (模板)Template, 负责封装构造要返回的html, 内嵌模板引擎.
django生命周期
- 请求阶段(Request Phase):当接收到客户端的HTTP请求时,Django开始处理请求阶段。在这个阶段,Django的主要任务是根据URL映射和路由规则确定要调用的视图函数
- 中间件阶段(Middleware Phase):在请求阶段之后,Django会调用注册的中间件。
- 视图阶段(View Phase):在中间件阶段之后,Django调用确定的视图函数来处理请求。
- 模板渲染阶段(Template Rendering Phase):如果视图函数使用了模板来生成响应内容,那么在视图阶段之后,Django会根据视图函数指定的模板文件进行渲染。模板引擎将模板与数据结合,生成最终的HTML响应。
- 响应阶段(完成Response Phase):在模板渲染阶段之后,Django将生成的响应返回给客户端,完成了请求周期响应
二、Django创建虚拟环境
1. 安装虚拟环境的命令
pip install virtualenv
pip install virtualenvwrapper
安装完虚拟环境后,如果提示找不到mkvirtualenv命令,须配置环境变量:
2. 创建目录用来存放虚拟环境
mkdir $HOME/.virtualenvs
3. 打开~/.bashrc文件 ,并添加如下:
查找/virtualenvwrapper.sh路径:
whereis virtualenvwrapper.sh
输入vi ~/.bashrc
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export VIRTUALENVWRAPPER_VIRTUALENV=$HOME/.local/bin/virtualenv
source $HOME/.local/bin/virtualenvwrapper.sh
4. 运行
source ~/.bashrc
python创建虚拟环境
mkvirtualenv -p python3 虚拟环境名称
mkvirtualenv -p python3 py3_django 或下面
virtualenv -p python3 py3_django
查看虚拟环境的命令: workon 两次tab键
使用虚拟环境的命令: workon 虚拟环境名称 eg: workon py3
退出虚拟环境的命令: deactivate
删除虚拟环境的命令: rmvirtualenv 虚拟环境名称 先退出:deactivate 再删除
三、Django项目的创建
创建项目
django-admin startproject BookManager
cd BookManager
创建应用
python manage.py startapp Book
模型迁移 (建表)
迁移由两步完成 :
生成迁移文件:根据模型类生成创建表的语句
python manage.py makemigrations
执行迁移:根据第一步生成的语句在数据库中创建表
python manage.py migrate
#创建app 反向生成model
django-admin.py startapp app
#将模型导入创建的app中去
python manage.py inspectdb > app/models.py
创建用户
python manage.py createsuperuser
进入项目文件中, 开启项目对应的服务器
python manage.py runserver
python manage.py runserver --setting=settingConf.dev 0.0.0.0:8000
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 数据库引擎
'NAME': 'Bookdb', # 数据库名称
'HOST': 'localhost', # 数据库主机
'PORT': '3306', # 数据库端口
'USER': 'root', # 数据库用户名
'PASSWORD': 'mysql', # 数据库密码
}
}
设置为中国区域
LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'Asia/Shanghai'