day 56 Django介绍

HTTP协议
超文本传输协议
1.四大特性
1)基于TCP/IP之上作用于应用层
2)基于请求响应
3)无状态 cookie session token...
4)无连接---长连接 websocket(HTTP协议的大补丁)

2.数据格式
#请求格式
请求首行(请求方式,协议版本。。。)
请求头(一大堆k:v键值对)
\r\n
请求体(真正的数据 发post请求的时候才有 如果是get请求不会有)

#响应格式
响应首行
响应头
\r\n
响应体


3.响应状态码---用特定的数字表示一些意思
1XX:服务端已经成功接收到了你的数据 正在处理 你可以继续提交其他数据
2XX:服务端成功响应(200请求成功)
3XX:重定向
4XX:请求错误(404 请求资源不存在 403 拒绝访问)
5XX:服务器内部错误(500 )

#请求方式
get请求
朝别人要数据
post请求
向别人提交数据(eg:用户登录)

#url统一资源定位符


手撸web框架

#基于wsgiref模块

 1)手动书写socket
 2)手动处理http格式数据

该模块实现了上面两个手动的过程
根据功能不同拆分成了不同的py文件
urls.py 只放路由与视图函数对应关系
views.py 放视图函数(函数,类)
拆分完成之后 如果想要添加功能,你仅仅只需要在上面两个地方动手脚就可以了

#动静态网页
静态网页
数据是写死的 万年不变
动态网页
数据是实时获取的
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用的别人的 jinja2
Tornado
三者全是自己写的

使用Django注意事项
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

扫描二维码关注公众号,回复: 7501226 查看本文章

#如何理解django里的app

一个django项目就类似于是一所大学,而app就类似于大学里面的学院
django其实就是用来一个个应用的
一个app就相当于一块独立的功能

比如:
用户功能
管理功能


django支持任意多个app

如何使用Django
#命令行使用
创建django项目
django-admin startproject mysite
启动django项目
python manage.py runserver
创建应用app
python manage.py startapp app01

#pycharm使用

在启动django项目的时候 你一定要确保一个端口只有一个django项目


#注意:
1.新创建的app需要你去settings配置文件中注册
pycharm只会帮你注册第一个你在创建项目的时候写的应用
2.使用命令行创建django项目 不会自动帮你创建templates文件夹
只能自己创建
3.settings文件中 需要你手动在TEMPLATES写配置
os.path.join(BASE_DIR, 'templates')

#Django中的文件目录
项目名
跟项目名同名的文件夹
settings.py 暴露给用户的配置文件
urls.py 路由与视图函数对应关系
应用名
migrations文件夹 存放数据库迁移记录的
admin.py django后台管理
apps.py 注册相关
models.py 模型类
tests.py 测试文件
views.py 存放视图函数(处理业务逻辑)
templates文件夹 存放html文件
manage.py django入口文件

猜你喜欢

转载自www.cnblogs.com/wwei4332/p/11700424.html
56
#56