Django介绍与安装
Django官方文档:https://docs.djangoproject.com/en/2.1/
Django中文文档:https://docs.djangoproject.com/zh-hans/2.0/ (哥们说:你要是条咸鱼,就看这个吧,你呢)
1.1 基础介绍
1.1.1 数据HTTP请求格式和相应格式
1.1.2 MVC和MTV框架
1. MVC --> Model View Control
2. MTV --> Model Template views
1.1.3 web框架的本质
web框架本质
0. socket收发消息
1. 访问不同的URL返回不同的页面
用户访问的具体路径 --> 执行不同的函数 --> 返回不同的结果
2. 不同用户访问相同的URL返回不同的页面内容
字符串的替换
1.1.4 python里框架的分类
Web框架的本质三大部分: a. 收发socket消息 web服务器 web应用程序 b. 根据不同的请求执行不同的函数返回不同的内容 c. 字符串替换 Django开发阶段使用 wsgiref 模块来处理socket消息 Django部署到线上使用 uWsgi/gunicorn 模块来处理socket消息 Python中 web服务器程序和Web应用程序之间传递消息: WSGI协议
1. 自己实现b和c,使用第三方的a: Django框架 2. 自己实现b,使用第三方的a和c: Flask 3. 自己实现ac: Tornado
1.2 Django安装与使用
1.2.1 版本选择
在官网中,看这张图,标识为LTS的为长期支持版
安装:
# 运行环境要求安装python3
➜ ~ python3 --version
Python 3.6.3
# 安装指定版本django
pip3 install django==1.11.11
pip3 list # 查看当前Python解释器安装了哪些第三方包
pip3 install django==1.11 -i https://pypi.tuna.tsinghua.edu.cn/simple ## 指定源安装
pip3 uninstall django # 卸载已安装的Django
1.2.2 命令行创建Django和运行
django-admin startproject s21django # 在当前目录下创建一个名为 s21django 的Django项目
python manage.py startapp app名字 # 在当前目录新建一个app
python manage.py runserver # 运行项目,默认绑定127.0.0.1:8000
python manage.py runserver 127.0.0.1:8090 #指定运行IP和端口
python manage.py runserver 8090 #指定端口
1.2.3 在PyCharm创建和操作Django项目
创建项目:
运行项目:
在PyCharm中指定绑定的 IP和端口:
1.3 Django基础组建介绍
1.3.1 基本路由系统 (urls.py)
1. 路由是一个有顺序的列表,从上到下去匹配
2. 路由的路径是根据正则表达式来匹配的
1.3.2 基本视图函数(views.py)
基础必会三件套
from django.shortcuts import HttpResponse, render
1. HttpResponse('字符串')
2. render(request, 'xx.html')
3. redirect
1.3.3 POST请求403的解决:
在项目配置文件settiongs.py中注释csrf项,暂时解决
1.3.3 基本模板引擎
1. render(request, 'xx.html', {"k": "v"}) 2. 常用语法: 1. {{ 变量名 }} 2. {{ 变量名.key }} 3. for循环 {% for x in xx %} {{x}} {% endfor %} 4. if判断 {% if 条件 %} ... {% else %} ... {% endif %}
1.3.4 ORM(单表)
1. 使用pymysql连接MySql车管所讯数据库的基本流程
1. import pymysql 2. 建立连接 3. 获取光标 4. 执行SQL语句 5. 获取数据 6. 关闭光标 7. 关闭连接
2. 什么是ORM
ORM是Django中关于数据库的对象关系映射,具有以下映射关系
类 -----> 数据表
属性 -----> 字段
对象 -----> 数据行
3. 在Django中使用ORM的方法
3.1 告诉Django连接哪个MySQL数据库(settings.py)
3.2 告诉Django用pymysql连接MySQL数据库 (默认用的是MySQLDB)(__init__.py)
3.3 去app/models.py里面创建类
3.4 让Django去数据库帮我创建类对应的数据表
python manage.py makemigrations --> 将models.py的改动记录在小本本上
python manage.py migrate --> 将变更记录翻译成SQL语句,去数据库执行
1.3.5 连接mysql报错: 提示找不到MysqlDB:
没有告诉Django用pymysql连接MySQL数据库 (默认用的是MySQLDB)(__init__.py)