目录
第一章、Django概述
一、了解软件开发架构
c/s 客户端 服务端
b/s 浏览器 服务端
ps:bs本质也是cs
知识兔二、HTTP协议
全称:超文本传输协议
1.四大特性
1.基于TCP/IP之上作用于应用层
2.基于请求响应
3.无状态 每次连接一次只处理一个请求,
不保存用户状态 不利于保持连接 所以才有cookie session token的产生...
4.无连接:
长连接 websocket(HTTP协议的大补丁):没有数据传也要保持tcp连接
2.数据格式
请求格式
请求首行(请求方式,协议版本。。。)
请求头(一大堆k:v键值对)
\r\n
请求体(真正的数据 发post请求的时候才有 如果是get请求不会有)
响应格式
响应首行
响应头
\r\n
响应体
知识兔三、响应状态码
用特定的数字表示一些意思
1XX:服务端已经成功接收到了你的数据 正在处理 你可以继续提交其他数据
2XX:服务端成功响应(200请求成功)
3XX:重定向
4XX:请求错误(404 请求资源不存在 403 拒绝访问)
5XX:服务器内部错误(500 )
知识兔四、请求方式
get请求
朝别人要数据(get请求没有请求体,get请求也可以携带参数)
post请求
朝别人提交数据(用户登录)
知识兔五、基于wsgiref模块
相当于web服务网关接口
1 socket代码帮你封装好了
2 http数据自动帮你处理好了
1.请求来的时候 帮你拆分http数据格式
2.响应走的时候 有帮你封装成了符合http数据格式的数据
根据不同的功能拆封成不同的py文件
urls.py 路由与视图函数对象关系
views.py 放的是视图函数(处理业务逻辑的)
templates 模板文件夹(一堆html文件)
知识兔六、.动静态网页
静态网页
数据是写死的 万年不变
动态网页
数据是实时获取的
eg:
1.后端获取当前时间展示到前端
2.后端获取数据库中的数据展示到前端
知识兔疑问:如何将后端获取的数据 传递给html页面后端获取的数据 传递给html页面 >>>: 模板的渲染jinja2 pip3 install jinja2模板语法(极其贴近python后端语法) <p>{{ user }}</p> <p>{{ user.name }}</p> <p>{{ user['pwd'] }}</p> <p>{{ user.get('hobby') }}</p>----------------------------------------- {% for user_dict in user_list %} <tr> <td>{{ user_dict.id }}</td> <td>{{ user_dict.name }}</td> <td>{{ user_dict.pwd }}</td> </tr> {% endfor %}
七、python三大主流web框架
Django: 大而全 自带的功能特别特别多 类似于航空母舰 有时候过于笨重Flask 小而精 自带的功能特别特别少 类似于游骑兵 第三方的模块特别特别多,如果将flask第三方模块全部加起来 完全可以超过django 比较依赖于第三方模块Tornado 异步非阻塞 牛逼到可以开发游戏服务器
A:socket部分
B:路由与视图函数对应关系
C:模板语法
Django: A用的别人的 wsgiref B自己写的 C自己写的Flask A用的别人的 werkzeug(基于wsgiref) B自己写的 C用的别人的 jinja2Tornado 三者全是自己写的
八、安装Django
注意事项 1.计算机的名称不能有中文 2.一个pycharm窗口就是一个项目 3.项目名里面尽量不要用中文django版本问题 1.X 2.X 现在市面上用的比较多的还是1.X 推荐你使用1.11.9~1.11.13django安装 pip3 install django==1.11.11 如何验证django是否安装成功 命令行直接敲django-admin
说明:
一个django项目就类似于是一所大学,而app就类似于大学里面的学院django其实就是用来开发一个个应用的一个app就相当于一块独立的功能 用户功能 管理功能django支持任意多个app如何使用 命令行使用 创建django项目 django-admin startproject mysite 注意: 1.使用命令行创建django项目 不会自动帮你创建templates文件夹 只能自己创建 2.settings文件中 需要你手动在TEMPLATES写配置 os.path.join(BASE_DIR, 'templates') 启动django项目 python manage.py runserver 创建应用app python manage.py startapp app01 注意: 1.新创建的app需要你去settings配置文件中注册 pycharm只会帮你注册第一个你在创建项目的时候写的应用
九、使用django
在启动django项目的时候 你一定要确保一个端口只有一个django项目项目名 跟项目名同名的文件夹 settings.py 暴露给用户的配置文件 urls.py 路由与视图函数对应关系 应用名 migrations文件夹 存放数据库迁移记录的 admin.py django后台管理 apps.py 注册相关 models.py 模型类 tests.py 测试文件 views.py 存放视图函数 templates文件夹 存放html文件 manage.py django入口文件