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