最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • Flask框架是什么?带你安装运行第一个Flask程序

    正文概述    2020-09-10   395

    Flask框架是什么?带你安装运行第一个Flask程序

    1 了解框架

    Flask作为Web框架,它的作用主要是为了开发Web应用程序。那么我们首先来了解下Web应用程序。Web应用程序 (World Wide Web)诞生最初的目的,是为了利用互联网交流工作文档。

    1.1 一切从客户端发起请求开始。

    所有Flask程序都必须创建一个程序实例。

    当客户端想要获取资源时,一般会通过浏览器发起HTTP请求。

    此时,Web服务器使用一种名为WEB服务器网关接口的WSGI(Web Server Gateway Interface)协议,把来自客户端的请求都交给Flask程序实例。

    Flask使用Werkzeug来做路由分发(URL请求和视图函数之间的对应关系)。根据每个URL请求,找到具体的视图函数。

    在Flask程序中,路由一般是通过程序实例的装饰器实现。通过调用视图函数,获取到数据后,把数据传入HTML模板文件中,模板引擎负责渲染HTTP响应数据,然后由Flask返回响应数据给浏览器,最后浏览器显示返回的结果。

    1.2 客户端不一定是浏览器,也可以是PC软件、手机APP、程序

    根据服务器端的工作,将其分为两部分:

    (1)服务器:与客户端进行tcp通信,接收、解析、打包、发送http格式数据。

    (2)业务程序:根据解析后的请求数据执行逻辑处理,形成要返回的数据交给服务器。

    服务器与Python业务程序的配合使用WSGI协议。

    1.3 框架的轻重

    重量级的框架:为方便业务程序的开发,提供了丰富的工具、组件,如Django

    轻量级的框架:只提供Web框架的核心功能,自由、灵活、高度定制,如Flask、Tornado

    2 认识Flask

    2.1 简介

    Flask诞生于2010年,是Armin ronacher(人名)用Python语言基于Werkzeug工具箱编写的轻量级Web开发框架。它主要面向需求简单的小应用。

    Flask本身相当于一个内核,其他几乎所有的功能都要用到扩展(邮件扩展Flask-Mail,用户认证Flask-Login),都需要用第三方的扩展来实现。比如可以用Flask-extension加入ORM、窗体验证工具,文件上传、身份验证等。Flask没有默认使用的数据库,你可以选择MySQL,也可以用NoSQL。其 WSGI 工具箱采用 Werkzeug(路由模块),模板引擎则使用 Jinja2 。

    可以说Flask框架的核心就是Werkzeug和Jinja2。

    Python最出名的框架要数Django,此外还有Flask、Tornado等框架。虽然Flask不是最出名的框架,但是Flask应该算是最灵活的框架之一,这也是Flask受到广大开发者喜爱的原因。

    2.2 与Django对比

    django提供了:

    django-admin快速创建项目工程目录

    manage.py 管理项目工程

    orm模型(数据库抽象层)

    admin后台管理站点

    缓存机制

    文件存储系统

    用户认证系统

    而这些,flask都没有,都需要扩展包来提供。

    2.3 Flask扩展包:

    Flask-SQLalchemy:操作数据库;

    Flask-migrate:管理迁移数据库;

    Flask-Mail:邮件;

    Flask-WTF:表单;

    Flask-script:插入脚本;

    Flask-Login:认证用户状态;

    Flask-RESTful:开发REST API的工具;

    Flask-Bootstrap:集成前端Twitter Bootstrap框架;

    Flask-Moment:本地化日期和时间;

    相关推荐:《Python视频教程》

    3 安装使用Flask

    1. 安装flask

    pip3 install flask

    2. 第一个Flask程序

    Flask程序运行过程:

    所有Flask程序必须有一个程序实例。

    Flask调用视图函数后,会将视图函数的返回值作为响应的内容,返回给客户端。一般情况下,响应内容主要是字符串和状态码。

    当客户端想要获取资源时,一般会通过浏览器发起HTTP请求。此时,Web服务器使用WSGI(Web Server Gateway Interface)协议,把来自客户端的所有请求都交给Flask程序实例。WSGI是为 Python 语言定义的Web服务器和Web应用程序之间的一种简单而通用的接口,它封装了接受HTTP请求、解析HTTP请求、发送HTTP,响应等等的这些底层的代码和操作,使开发者可以高效的编写Web应用。

    程序实例使用Werkzeug来做路由分发(URL请求和视图函数之间的对应关系)。根据每个URL请求,找到具体的视图函数。 在Flask程序中,路由的实现一般是通过程序实例的route装饰器实现。route装饰器内部会调用add_url_route()方法实现路由注册。

    调用视图函数,获取响应数据后,把数据传入HTML模板文件中,模板引擎负责渲染响应数据,然后由Flask返回响应数据给浏览器,最后浏览器处理返回的结果显示给客户端。

    创建一个flask项目,然后创建app.py文件。

    # 导入Flask类
    from flask import Flask
    #Flask类接收一个参数__name__
    app = Flask(__name__)
    # 装饰器的作用是将路由映射到视图函数index
    @app.route('/')
    def index():
        return 'Hello World'
    # Flask应用程序实例的run方法启动WEB服务器
    if __name__ == '__main__':
        app.run()

    启动项目,在浏览器访问,此时页面上就会有Hello World。

    3. Flask创建app对象

    3.1 初始化参数

    # 创建flask的应用对象;
    # __name__   flask以这个模块所在的目录为总目录,默认这个目录中static为静态目录,templates为模板目录
    app = Flask(__name__,
                static_url_path='/static',      # 访问静态资源的url前缀,默认为static
                static_folder='static',         # 静态文件的目录,默认为static
                template_folder='templates',    # 模板文件的目录,默认为templates
                )

    3.2 配置参数

    # 配置参数的使用方式(开启调试模式)
    # 1.使用配置文件
    # app.config.from_pyfile("config.cfg")    # 在项目下创建一个config.cfg文件,然后在里面写DEBUG=True
    # 2.使用对象配置参数
    # class Config(object):
    #     DEBUG = True
    # app.config.from_object(Config)
    # 3.直接操作config的字典对象
    # app.config["DEBUG"] = True

    3.3 在视图读取配置参数

    # 2.使用对象配置参数
    # class Config(object):
    #     DEBUG = True
    #     NAME = "test"
    # app.config.from_object(Config)
    from flask import Flask, current_app
        # 读取配置参数
        # 1.直接从全局对象app的config字典中取值
        # print(app.config.get("NAME"))
        # 2. 通过current_app获取参数
        # print(current_app.config.get("NAME"))

    3.4 app.run的参数

    # 启动Flask程序
    app.run()   # 默认127.0.0.1
    # app.run(host="192.168.1.1", port=5000)   # 使用电脑ip
    # app.run(host="0.0.0.0", port=5000, debug=True)  # 配置host和port。设置0.0.0.0时都可以访问;可以在这里设置调试模式


    起源地下载网 » Flask框架是什么?带你安装运行第一个Flask程序

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元