django介绍与安装
认识Django 官网(https://docs.djangoproject.com/en/2.2/intro/tutorial01/)
Django是一个高级Python Web框架,鼓励快速开发和干净,实用的设计。由经验丰富的开发人员构建,它可以解决Web开发的大部分麻烦,因此您可以专注于编写应用程序而无需重新发明轮子。它是免费和开源的。
目前django最新版本是2.2.3
安装向导
在终端输入pip install django下载
如果不放心是否为最新版本可在终端输入pip install django==2.2.3; (当前最新版本)
*注:安装时单独放在一个pycharm里的project里面会更方便哦!
创建项目
安装django后一并安装django-admin.exe命令行工具。
1.cd到放项目的目录下
2.django-admin startproject 文件名完成创建
djaogo_test目录
1.app/migrations:数据库迁移桥本
2.admin.py 自带的后台配置文件,快捷实现表CRUD
3.models.py 定义数据库表结构
4.tests.py 单元测试
5.views.py 功能逻辑,渲染页面
*修改文件自动重启,django debug开发模式会自动重启服务。
python manage.py migrate
在数据库中创建表命令
django自带基本项目结构介绍
manage.py 命令行工具,负责运行、创建子模块等功能,更django-admin.
mysite 跟项目同名的子包
mysite/settings.py 工程项目设置文件。数据库、时区、语言等,方便其他地方调用
mysite/urls.py url 路由。指向 不同的视图函数。
mysite/wsgi 通用网关接口。部署时用到。
运行测试服务器
测试服务器性能低,不负责高并发,仅供担任开发访问
运行命令:python manage.py runserver
与平时 Python.xx.py 不同,manage.py被第三方工具封装成了CLI命令行工具,后面runserver是一个参数
python manage.py runsever 0.0.0.0:8000
自定义
创建APP(民意调查应用)
1.运行命令 python manage.py startapp polls
project VS apps,django项目里的app并不是我们平时所说的应用。一个项目、一个应用在project,django框架中的app是一个更小级别的划分,代表一个大模块。
比如大型项目教育网站,权限、学生、教室、后台。每个大模块下有几十个页面和功能。都写在一起脚本太大不好维护,所以以django小项目可以一个模块,大项目可以按逻辑分为多个app(子应用)。
在民调app中包含以下代码:
rom django.urls import path
from . import views
urlpatterns = [
path(’’, views.index, name=‘index’),
]
2.下一步是将根URLconf指向polls.urls模块。在 mysite/urls.py,添加导入django.urls.include并include()在urlpatterns列表中插入一个 ,所以你有:
启动服务器连接index视图
python manage.py runserver
运行之后检测是否连接成功’127.0.0.1:8000/polls/index’ 如出现以下页面就是连接成功
整体流程
1.客户端发起请求
2.全局urls(项目同名包下的)查询指视图或子app下url
app下子url继续匹配,成功匹配指向视图函数
3.视图函数进行业务处理,返回http响应信息(http源代码)
4.浏览器加载响应html代码,看到结果
迁移
1.model.py 用类的方式定义表结构
2.想要使用和生成表结构的app需要先加入到settings中的installed_apps
3.生成python manage.py makemigrations [app_name]
,生成的迁移脚本在migrations文件夹下
3.执行sql python manage.py migrate
4.成功后会在数据库中看到生成的表。django_migratuibs表记录迁移过程
迁移整体流程
各种配置
1.settings.py配置
mysql连用户名 密码。项目大型后会有很多配置,如果写在每一个py脚本中将会产生重复代码,解决方案是在py.json配置文件声明键值对变量,其他各个py脚本配置。变量习惯上全大写字母命名。
2.数据库配置
默认sqlite,其他mysql.postgresql
ORM
文件位置 模型层-supported database, http://d.u753.com/ref/databases.html
mysql:
1.官方推荐驱动mysqlclient
pip install mysqlclient
2.确认字符集为utf-8
登录mysql客户端 show variables like 'character%' 文档位置 模型层-supported database ,http://d.u753.com/ref/databases.html 配置settings-database http://d.u753.com/ref/settings.html#std:setting-NAME