django是能够自动重启的(重启机制:内部监测到文件修改就会重启),可是有时候反应速度较慢;也有可能在你代码没写完时就重启会报错html
超文本传输协议前端
1. 基于tcp/ip协议之上的应用层
2. 基于请求相应的(被动响应)
3. 无状态(不保存用户状态){因无状态,cookie,session,token....}
4. 无链接(长链接 websocket)
• 请求行 (请求方式,版本协议)
• 请求头 (一大堆k:v键值对)相似于开路先锋,提早告知对方一些必要信息
• /r/n
• 请求体(真正的数据,发post请求是才有,若是是get请求不会有)
• 响应行
• 响应头
• /r/n
• 响应体
1xx: 服务端已经成功接收到数据,正在处理,能够提交其余数据
2xx: 服务端成功响应(如200,请求成功)
3xx: 重定向(当你没有登陆,自动跳转)
4xx:请求错误(404,请求资源不存在; 403,拒绝访问,)
5xx:服务器内部错误(500服务器出现问题)
get请求python
朝人要数据(没有请求体)web
post请求 数据库
朝别人提交数据(用户登陆)django
URL 统一资源定位符flask
让人提交数据后端
简单地wbe框架服务器
1. 手动处理http格式数据
2. http数据本身处理
2. 基于wsgiref模块
1. urls.py 只放路因为视图函数对应关系
1. view.py 只放视图函数
3. views.py 处理后端业务逻辑的视图函数(视图函数不仅仅是函数
4. 规律:只要你想加功能只须要在urls.py中添加一条对应的关系再去views.py 写一个函数视图
3. 动静态网页
1. 静态网页
1. 数据是写死了,万年不变
1. 动态网页
1. 数据是实时获取的
1. eg:
1. 后端获取当前时间展现到前端
1. 后端获取数据库中的数据展现到前端
#### 疑问: 如何将后端获取的数据 传递给html页面 后端获取的数据 传递给html页面 >>>: 模板的渲染 jinja2 pip3 install jinja2 模板语法(极其贴近python后端语法) <p>{{ user }}</p> (变量相关) <p>{{ user.name }}</p> <p>{{ user['pwd'] }}</p> <p>{{ user.get('hobby') }}</p> websocket
{% for user_dict in user_list %} (逻辑相关)
<tr>
<td>{{ user_dict.id }}</td>
<td>{{ user_dict.name }}</td>
<td>{{ user_dict.pwd }}</td>
</tr>
{% endfor %}
1. 优势: 大而全,自带功能多,相似于航空母舰
缺点:有时过于笨重
缺点: 小而精,自带功能不多,相似于游骑兵,比较依赖于第三方模块
优势: 第三方模块特别多,若是将flask第三方模块加起来彻底能够超过Django
异步非阻塞
A:socket部分
B:路由与视图函数对应关系
C:模板语法
Django:
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安装:pip intsall Django(版本)
确认是否安装成功:Django-admin
命令行式:
建立项目:
Django-admin startproject mysite
启动项目:
python manage.py runserver
建立应用:
python manage.py startapp app01
一个django项目就相似因而一所大学,而app就相似于大学里面的学院 django其实就是用来一个个应用的 一个app就至关于一块独立的功能 用户功能 管理功能 django支持任意多个app
注意:
1. 使用命令行建立项目,不会自动建立templates文件夹,只能手动建
settings文件中手动写[os.path.join(BASE_DIR, 'templates')]
pycharm建立:
可以自动建立template文件夹和路径配置
也可以支持建立一个应用并注册。