zoukankan      html  css  js  c++  java
  • 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开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预处理,然后触发Flask框架,开发人员基于Flask框架提供的功能对请求进行相应的处理,并返回给用户,如果要返回给用户复杂的内容时,需要借助jinja2模板来实现对模板的处理,即:将模板和数据进行渲染,将渲染后的字符串返回给用户浏览器。

    “微”(micro) 并不表示你需要把整个 Web 应用塞进单个 Python 文件(虽然确实可以 ),也不意味着 Flask 在功能上有所欠缺。微框架中的“微”意味着 Flask 旨在保持核心简单而易于扩展。Flask 不会替你做出太多决策——比如使用何种数据库。而那些 Flask 所选择的——比如使用何种模板引擎——则很容易替换。除此之外的一切都由可由你掌握。如此,Flask 可以与您珠联璧合。

    默认情况下,Flask 不包含数据库抽象层、表单验证,或是其它任何已有多种库可以胜任的功能。然而,Flask 支持用扩展来给应用添加这些功能,如同是 Flask 本身实现的一样。众多的扩展提供了数据库集成、表单验证、上传处理、各种各样的开放认证技术等功能。Flask 也许是“微小”的,但它已准备好在需求繁杂的生产环境中投入使用。

    1 from werkzeug.wrappers import Request, Response
    2 
    3 @Request.application
    4 def hello(request):
    5     return Response('Hello World!')
    6 
    7 if __name__ == '__main__':
    8     from werkzeug.serving import run_simple
    9     run_simple('localhost', 4000, hello)
    werkzeug实例

    (2)MVC

    MVC是众所周知的模式,即:将应用程序分解成三个组成部分:model(模型),view(视图),和 controller(控制 器)。其中:

    • M——管理应用程序的状态(通常存储到数据库中),并约束改变状态的行为(或者叫做“业务规则”)
    • C——接受外部用户的操作,根据操作访问模型获取数据,并调用“视图”显示这些数据。控制器是将“模型”和“视图”隔离,并成为二者之间的联系纽带
    • V——负责把数据格式化后呈现给用户

    (3)flask的优点

    • 极大的定制与扩展灵活
    • ORM、模板等海量第三方扩展
    • Flask比Django更加Pythonic,与Python的philosophy更加吻合

    (4)flask的组件

    flask是短小精悍的一个web框架,内部没有太多组件。第三方组件非常丰富:

    • flask-sqlalchemy -> ORM
    • flask-script -> 为在Flask里编写额外的脚本提供了支持
    • flask-migrate -> 为Flask应用处理SQLAlchemy数据库迁移的扩展,使得可以通过Flask的命令行接口或者Flask-Scripts对数据库进行操作
    • flask-bootstrap -> 是包含了Bootstrap框架的扩展,安装Flask-Bootstrap之后,就可以在程序中集成Bootstrap
    • flask-moment -> 本地化时间和日期
    • flask-wtf -> 简化表单处理、防跨站请求伪造(CSRF)攻击
    • 、、、

    注:更多第三方组件见:http://flask.pocoo.org/extensions/

    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

    注意:

    1 在linux服务器上可能没有自带pip3
    2 所以要自己去安装pip3,安装方法如下:
    3 apt-get install python3-pip

    (2)创建flask项目

    使用pycharm(专业版)创建:File --> New project --> 左侧选flask--> 右侧填项目路径,并且勾选python.exe

    自己创建: 创建一个普通项目 -> 在这个项目里自己搭flask的框架

    关于flask的框架,可以根据项目需求和自己掌握的东西来选择组件,但是最基本的就是以下的东西:

    (3)设置flask项目

    flask项目的设置有很多方法,可以设置在单独的文件中,也可以直接写在字典中然后传给app.run方法

    以后者为例,以下是最基本的设置:

     1 # 运行服务器
     2 if __name__ == '__main__':
     3     # debug 模式可以自动加载你对代码的变动, 所以不用重启程序
     4     # host 参数指定为 '0.0.0.0'   可以让别的机器访问你的代码
     5     # host 参数指定为 'localhost' 实际上是使用本机回环地址127.0.0.1
     6     # 127.0.0.1 一般是用来进行本地测试和开发的
     7     # port指定端口 端口是这个网站被别人访问的入口 
     8     # 有了IP+端口 别人才能真正访问一个网站
     9     config = dict(
    10         debug=True,
    11         host='localhost',
    12         port=2000,
    13     )
    14     app.run(**config)
    15     # app.run() 开始运行服务器
    16     # 访问下面的网址就可以打开网站:
    17     # http://127.0.0.1:2000/
  • 相关阅读:
    关于excel导入、导出(POI)
    关于上传图片和显示
    关于sql连接查询(内联、左联、右联、全联)
    关于面试问题
    关于excel导出
    响应式布局和自适应布局的不同
    关于时间范围查询
    HDU 6166 Senior Pan(二进制分组+最短路)
    HUAS 2017暑假第六周比赛-题解
    AtCoder Regular Contest 081
  • 原文地址:https://www.cnblogs.com/wyb666/p/9460598.html
Copyright © 2011-2022 走看看