像SpringBoot一样使用Flask (文末有源码)

发布时间:2024年01月05日

Flask是一个Python的轻量级Web应用框架,类似于Spring Boot的快速开发和简化配置的特性。下面是一些使用Flask构建Web应用的步骤:

????1、安装Flask:在命令行中执行pip install flask来安装Flask库。

????创建一个Flask应用:创建一个Python文件,并导入Flask库。

from flask import Flask

app = Flask(__name__)

2、定义路由和视图函数:在应用中定义路由,指定HTTP请求方法,并编写相应的视图函数。


@app.route('/')
def index():
    return 'Hello, Flask!'

????3、运行Flask应用:在应用中添加如下代码,使其在运行时启动Flask开发服务器。


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

那么Springboot里面的拦截器、统一日志输出,还有统一异常处理呢。

4、环境配置

class BaseConfig():
    LOCAL_ENV = "pro"
    """通用基础配置"""
    MEDIA_ROOT = "/static/media"

class TestConfig(BaseConfig):
    """测试环境配置"""
    DEBUG = True
    DB = '127.0.0.1'

class DevConfig(BaseConfig):
    """开发环境配置"""
    DEBUG = True
    DB = '192.168.1.1'

class PreProConfig(BaseConfig):
    """预发布环境配置"""
    DEBUG = False
    DB = '47.18.1.10'

class ProConfig(BaseConfig):
    """生产环境配置"""
    DEBUG = False
    DB = '47.18.1.1'




import os

from flask import Flask

from config.config import *
from logging.config import dictConfig



# 通过配置选择开发环境还是正式环境
def create_app():
    # create and configure the app
    app = Flask(__name__)

    app.config.from_object(BaseConfig)
    localEnv = str(app.config.get('LOCAL_ENV'))
    # 正式环境配置
    if localEnv == "pro":
        app.config.from_object(ProConfig)
    # 测试环境配置
    if localEnv == "dev":
        app.config.from_object(DevConfig)


    # 蓝图视图 类似spring注入
    from apps import MyError , Success
    from demo.restfull.RestfulDemo import RestfulDemobp
    app.register_blueprint(MyError.bp)
    app.register_blueprint(Success.bp)
    # restful整合蓝图
    app.register_blueprint(RestfulDemobp)
    return app

5、统一日志配置

import json
class JsonResponse(object):
    """
    统一的json返回格式
    """

    def __init__(self, data, code, msg):
        self.data = data
        self.code = code
        self.msg = msg

    @classmethod
    def success(cls, data=None, code=0, msg='success'):
        return cls(data, code, msg)

    @classmethod
    def error(cls, data=None, code=-1, msg='error'):
        return cls(data, code, msg)

    def to_dict(self):
        return {
            "code": self.code,
            "msg": self.msg,
            "data": self.data
        }

    def to_json(self):
        return json.dumps(self , default= lambda obj: obj.__dict__ ,sort_keys=True ,indent=4)

更多内容关注我吧~?

关注公众号发送“flask”获取源码哦~??
文章来源:https://blog.csdn.net/weixin_30030167/article/details/135401888
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。