flask框架预备知识
Posted wyb666
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了flask框架预备知识相关的知识,希望对你有一定的参考价值。
1.web预备知识
2.flask介绍
3.web框架的本质及分类
4.flask安装与基本设置
1.web预备知识
HTTP协议:https://www.cnblogs.com/wyb666/p/9383077.html
关于web的本质:http://www.cnblogs.com/wyb666/p/9034042.html
如何自定义web框架:http://www.cnblogs.com/wyb666/p/9038644.html
了解cookie和session:https://www.cnblogs.com/wyb666/p/9068853.html
2.flask介绍
(1)flask介绍
Python的WEB框架有Django、Tornado、Flask 等多种
flask是一个基于python的,微型web框架。之所以被称为微型是因为其核心非常简单,同时具有很强的扩展能力。它几乎不给使用者做任何技术决定。
安装flask时应该注意其必须的几个支持包比如Jinja2,Werkzeug等。如果使用easy_install或者pip这样的安装工具的话那么就不必担心这么多了。另外flask还有一些可选的辅助模块,使用它们可以让程序更加简洁易懂,比如SQLAlchemy用于数据库的连接和操作,flask-WTForm用于网页上表单的设计
(2)MVC
MVC是众所周知的模式,即:将应用程序分解成三个组成部分:model(模型),view(视图),和 controller(控制 器)。其中:
- M——管理应用程序的状态(通常存储到数据库中),并约束改变状态的行为(或者叫做“业务规则”)
- C——接受外部用户的操作,根据操作访问模型获取数据,并调用“视图”显示这些数据。控制器是将“模型”和“视图”隔离,并成为二者之间的联系纽带
- V——负责把数据格式化后呈现给用户
(3)flask的优点
- 极大的定制与扩展灵活
- ORM、模板等海量第三方扩展
- Flask比Django更加Pythonic,与Python的philosophy更加吻合
(4)flask的组件
- flask-sqlalchemy -> ORM
- flask-script -> 为在Flask里编写额外的脚本提供了支持
- flask-migrate -> 为Flask应用处理SQLAlchemy数据库迁移的扩展,使得可以通过Flask的命令行接口或者Flask-Scripts对数据库进行操作
- flask-bootstrap -> 是包含了Bootstrap框架的扩展,安装Flask-Bootstrap之后,就可以在程序中集成Bootstrap
- flask-moment -> 本地化时间和日期
- flask-wtf -> 简化表单处理、防跨站请求伪造(CSRF)攻击
- 、、、
3.web框架的本质及分类
(1)web框架的本质:socket服务端 与 浏览器的通信
(2)socket服务端功能划分
- 负责与浏览器收发消息(socket通信) --> wsgiref/uWsgi/gunicorn...
- 根据用户访问不同的路径执行不同的函数
- 从html读取出内容,并且完成字符串的替换 --> jinja2(模板语言)
(3)Python中 Web框架的分类
按上面三个功能划分:
- 框架自带a,b,c --> Tornado
- 框架自带b和c,使用第三方的a --> Django
- 框架自带b,使用第三方的a和c --> Flask
按另一个维度来划分:
- Django --> 大而全(你做一个网站能用到的它都有)
- 其他 --> Flask 轻量级
4.flask安装与基本设置
(1)flask安装
1 pip3 install flask
(2)创建flask项目
(3)设置flask项目
以上是关于flask框架预备知识的主要内容,如果未能解决你的问题,请参考以下文章
[NTUSTISC pwn LAB 7]Return to libc实验(puts泄露libc中gadget片段定位)