python框架之Flask一

  1. Flask简介

     python的web的框架—Flask,Flask主要是用来开发网站应用,基础包括环境搭建,路由编写,请求参数传递与获取以及响应的过程。

  2. 安装

    网站开发可以使用多种编程语言实现,只不过实现的过程和编码方式不同,开发原理是一致的,对于python来说,网站开发主流框架有Django,Flask,Tornado,Django是企业级别的框架,是python中的大型框架,小企业可能会选择Flask,因为可以实现快速开发,也较为简单,

    Flask的设计易于使用和扩展, 依赖于两个外部库:Ji时a2模板引擎和Werkzeug WSGI 工具包。它的初衷是为各种复杂的Web应用程序构建坚实的基础, PythonWeb开发人员可以自由地插入任何扩展, 也可以自由构建自己的模块, 具有很强的扩展性。Flask具有开箱即用的优点, 并有以下的特点:

    (1)内置开发服务器 和快速调试器。

    (2)集成支持单元测试。

    (3)RESTful可请求调度。

    (4)Jinja2模板。

    (5)支持安全cookie C客户端会话)。

    (6)符合WSGl 1.0。

    (7)基于Unicode

    总而言之, Flask是最精简且功能最丰富的微框架之 ,它拥有蓬勃发展的社区, 丰富的扩展模块和完善的API, 且具有快速开发、 强大的 WSGI功能、 Web应用程序的单元可测性以及大量文档等优点。

    Flask的安装可以使用pip指令完成, 在Windows的CMD窗口下输入pip install flask 并按回车键等待安装即可。安装成功后进入Python交互模式, 验证是否安装成功, 验证方法如图

     

     

     

     

    因为我已经安装了,所以会显示already,版本是2.0.2.

     

     

  3. 快速实现一个简单的网站系统

    首先使用flask来开发网站系统。创建main.py文件,在该文件里编写以下代码可实现一个简单的网站系统。

    #导入Flask,从flask中加载Flask模块
    from flask import Flask
    #
    创建一个Flask实例
    app = Flask(__name__)
    #
    设置路由地址,即网页地址,也是url
    @app.route('/')
    #url
    的处理函数
    def hello_world():
    #
    返回的网页
    return "hello girls and boys"

    if
    __name__ == '__main__':
    app.run()

     

    上述代码主要分为三部分:Flask实例化,定义网站的路由地址和函数,网站的运行入口:

    •    Flask实例化:这是通过Python的Flask模块实例化, 因为 Python是面向对象编程语言, 而实例化是创建一个Flask对象, 它代表整个网站系统。

    •    定义网站的路由地址和函数:网站路由由Flask对象app的route装饰器定义, 它对网站系统添加网站地址, 每个网站地址都由一个路由函数处理, 这个函数用于响应用户的请 求, 比如用户在浏览器上访问这个网址, 那么网站系统必须对用户的HTTP请求做出响应, 这个响应过程就是由这个路由函数处理和实现的

    •    网站的运行入口:用于启动并运行网站, 由app对象的run()方法实现。 run()方法里可以 设直相应的参数来设置网站的运行方式。

    执行这段代码,结果如下:

    点击结果中的链接就是网站内容

  4. 路由编写规则

    路由地址是以"/"表示,而在浏览器却变成了http://127.0.0.1 :5000/。因为路由地址第一个 " / " 表示网站的域名或IP地址, 也就是我们常说的网站首页。 网站的路由地址编写规则与Windows的文件目录路径是相似的, 每个 " / " 代表不同的路由等级,每个路由等级的命名可以是固定的或以变量表示, 如下所示:

    #导入Flask,从flask中加载Flask模块
    from flask import Flask


    #
    创建一个Flask实例
    app = Flask(__name__)
    #
    设置路由地址,即网页地址,也是url
    @app.route('/')


    #url
    的处理函数
    def hello_world():
    #
    返回的网页
    return "hello girls and boys"

    #
    路由地址:http://127.0.0.1:5000/user/
    @app.route('/user/')
    def user():
    return 'This is user center'
    #
    路由地址:http://127.0.0.1:5000/user/xxx
    @app.route('/user/<types>')
    def userCenter(
    types):
    return "this is user's " +
    types + " page"

    if
    __name__ == '__main__':
    app.run()

     

    上述例子设置了两个不同等级的路由地址, 通常情况下网站首页( " / " 〉称为根目录, 路由/user/代表网站的二级目录: 而' /user/<types>'是' /user/'下的子目录, 也是网站的三级目录, 其中<types>是一个变量, 可代表任意内容, 并且路由的变量可以传递到路由函数 userCenter里使用。

    在路由中设置变量可对路由进行精简处理, 比如路由地址中设有日期格式, 若按照一年来计算, 每天就要设定一个路由地址, 那么一年就需要设置365个路由, 如果将日期设为变量表示, 只需一个路由即可解决。 在浏览器上分别将路由变量设为login、logout和 relogin, 网站会将变量值显示到网页上, 如图

     

    路由的编写规则还可以设置HTTP 请求,HTTP 的请求方法有GET,POST, OPTIONS, PUT, DELETE, TRACE和CONNECT方法。一般情况下,GET和POST方法

    是最为常用的HTTP请求,GET请求是从网站中获取数据并显示在浏览器上,POST请求是将用户输入在浏览器的数据提交到网站系统里进行处理。同一个路由地址可以设置不同的HTTP请求方式,并可以设置每种请求方式的处理方法,具体代码如下:

    
    
    #导入request方法
    from flask import request
    #参数methods是设置HTTP请求方法
    @app.route('/user/', methods=['GET','POST'])
    def users():
        #判断当前的请求方式,执行不同的处理
        if request.methods == 'GET':
            return 'This is user center'
        else:
            return 'This is my center'
    
    
    

     

    当用户在浏览器上访问http://127.0.0.1:5000/user/的时候,实质上是对网站发送一个HTTP的 GET请求,网站收到请求后,在路由函数user里判断请求类型,再根据请求类型 执行相应的处理,最后将处理结果返回到浏览器。

posted @ 2021-12-07 15:03  头发重要  阅读(107)  评论(0编辑  收藏  举报