• 1. flask框架-简介/快速启动


    一、flask简介

    Flask诞生于2010年,是Armin ronacher(人名)用 Python 语言基于 Werkzeug 工具箱编写的轻量级Web开发框架。

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

    其 WSGI 工具箱采用 Werkzeug(路由模块),模板引擎则使用 Jinja2。Itsdangrous这两个也是 Flask 框架的核心。

    官网: https://flask.palletsprojects.com/en/1.1.x/

    官方文档: http://docs.jinkan.org/docs/flask/

    Flask常用第三方扩展包:

    • Flask-SQLalchemy:操作数据库,ORM;

    • Flask-script:终端脚本工具,脚手架;

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

    • Flask-Session:Session存储方式指定;

    • Flask-WTF:表单;

    • Flask-Mail:邮件;

    • Flask-Bable:提供国际化和本地化支持,翻译;

    • Flask-Login:认证用户状态;

    • Flask-OpenID:认证, OAuth;

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

    • Flask JSON-RPC: 开发rpc远程服务[过程]调用

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

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

    • Flask-Admin:简单而可扩展的管理接口的框架

    可以通过 https://pypi.org/search/?c=Framework+%3A%3A+Flask 查看更多flask官方推荐的扩展

     

    二、环境搭建

    2.1  创建虚拟环境

    # anaconda创建虚拟环境
    # conda create -n flask python=3.8 flask==1.1.4
    # 进入/切换到指定名称的虚拟环境,如果不带任何参数,则默认回到全局环境base中。
    # conda activate <虚拟环境名称>
    # 退出当前虚拟环境
    # conda deactivate

    2.2  安装flash

    如果上面常见虚拟环境时已安装,下面可以不安装

    pip install flask==1.1.4

    三、创建flask项目

    与django不同,flask不会提供任何的自动操作,所以需要手动创建项目目录,需要手动创建启动项目的管理文件

    例如,创建项目目录 flaskdemo,在目录中创建manage.py.在pycharm中打开项目并指定上面创建的虚拟环境

    创建一个flask框架的启动文件。名字可以是app.py/run.py/main.py/index.py/manage.py/start.py

    manage.py,代码:

    from flask import Flask
    
    app = Flask(__name__)
    
    @app.route(rule="/")
    def index():
        return "hello,<h1>flask</h1>!!!"
    
    # 加载项目配置
    class Config(object):
        DEBUG = True
    
    app.config.from_object(Config)
    
    if __name__ == '__main__':
        # flask运行过程中,所有的路由最终都会被注册到url_map里面。
        print( app.url_map )
        app.run(host="0.0.0.0",port=5000)

    代码分析:

    # 导入Flask类
    from flask import Flask
    
    """
    import_name      Flask程序所在的包(模块),传 __name__ 就可以
                     其可以决定 Flask 在访问静态文件时查找的路径
    static_path      静态文件访问路径(不推荐使用,使用 static_url_path 代替)
    static_url_path  静态文件访问路径,可以不传,默认为:/ + static_folder
    static_folder    静态文件存储的文件夹,可以不传,默认为 static
    template_folder  模板文件存储的文件夹,可以不传,默认为 templates
    """
    app = Flask(import_name=__name__)
    
    
    # 编写路由视图
    # flask的路由是通过给视图添加装饰器的方式进行编写的。当然也可以分离到另一个文件中。
    # flask的视图函数,flask中默认允许通过return返回html格式数据给客户端。
    @app.route('/')
    def index():
        return "<h1>hello world</h1>"
    
    # 加载项目配置
    class Config(object):
        # 开启调试模式
        DEBUG = True
    
    # flask中支持多种配置方式,通过app.config来进行加载,我们会这里常用的是配置类
    app.config.from_object( Config )
    
    
    # 指定服务器IP和端口
    if __name__ == '__main__':
        # 运行flask
        app.run(host="0.0.0.0", port=5000)

     

     

  • 相关阅读:
    fedora如何删除某个包且不删除依赖它的相关包
    git分支切换时的时间戳问题
    [Centos] ERROR: Could not find useradd in chroot, maybe the install failed?
    linux通过python设置系统默认编码
    linux设置系统时间和时区
    python: "TypeError: 'type' object is not subscriptable"
    如何搭建http服务仓库
    [转载]RPM中SPEC常用路径以及宏变量
    spec文件写作规范
    GeoServer中利用SLD配图之矢量图层配图
  • 原文地址:https://www.cnblogs.com/yj0405/p/14791286.html
Copyright © 2020-2023  润新知