软件开发框架
软件开发构架
- c/s客户端 服务端
- b/s浏览器 服务端
- ps: bs本质也是cs
http协议
- 超文本传输协议
1.四大特性
1.基于TCP/IP之上作用于应用层
2.基于请求响应
3.无状态 cookis session token...
4.无连接
长连接 websocket(HTTP协议的大补丁)
2.数据格式
请求格式
请求首行(请求方式,协议版本。。。。)
请求头(一大堆k:v键值对)
/r/n
请求体(真正的数据 发post请求的时候才有 如果是get请求不会有)
响应格式
响应首行
响应头
/r/n
响应体
3.响应状态码
用特定的数字表示一些意思
1xx:服务端已经成功接收到了你的数据 正在处理 你可以继续提交其他数据
2xx:服务端陈工响应(200请求成功)
3xx:重定向
4xx:请求错误(403 拒绝访问 404请求资源不在)
5xx:服务器内部错误(500)
请求方式
get请求
- 朝别人要数据
post请求
- 向别人提交数据(eg:用户登录)
什么是url
url:统一资源定位符
HTTP协议
-
纯手撸web框架
- 手动书写socket
- 手动处理http格式数据
-
基于wsgiref模块
该模块实现了上面两个手动的过程
根据功能不同拆分成了不同的py文件
urls.py只放路由与视图函数对应关系
views.py放视图函数(函数,类)
拆分完成之后,想要添加功能只需要在上面两个文件做修改即可
-
动静态网页
- 静态网页
- 数据是写死的 万年不变
- 动态网页
- 数据是实时获取的
- 静态网页
那么如何将后端获取的数据传给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主流框架
Python有三大主流框架
Django
- 大而全,自带功能特别特别多 类似与航空母舰
- 有时候很笨重
Flask
- 小而精 自带的功能特别特别少 类似于游骑兵
- 第三方模块特别特别多,如果把它的第三方模块全部加起来,完全可以超过django
- 比较依赖于第三方模块
Tornado
- 异步非阻塞
- 牛逼到可以开发游戏服务器
Django安装
安装注意事项
- 计算机的名称不能有中文
- 一个pycharm窗口就是一个项目
- 项目名里尽量不要用中文
django版本问题
1.X 2.X 现在市面上用的比较多的还是1.X
推荐使用1.11.9~1.11.13
django安装
pip3 install django==1.11.11
验证安装
- win+r
- cmd
- django-admin
使用命令行创建Django项目
-
创建django项目
django-admin start project mysite
-
启动django项目
python manage.py runserver
-
创建应用app
python manage.py startapp app01
PS:使用python charm创建项目须知
新创建的app需要在settings配置文件中注册
pycharm只会帮你注册第一个在创建项目时候写的应用
PS:使用命令行创建项目须知
1.使用命令行创建django项目 不会自动帮你创建templates文件夹
只能自己创建
2.settings文件中 需要你手动在TEMPLATES写配置
os.path.join(BASE_DIR, 'templates')
python charm使用
在启动django项目的时候 你一定要确保一个端口只有一个django项目
项目名
跟项目名同名的文件夹
settings.py 暴露给用户的配置文件
urls.py 路由与视图函数对应关系
应用名
migrations文件夹 存放数据库迁移记录的
admin.py django后台管理
apps.py 注册相关
models.py 模型类
tests.py 测试文件
views.py 存放视图函数
templates文件夹 存放html文件
manage.py django入口文件