• Flask的错误日志处理和|ORM操作


    flask有个很人性化的处理就是 你的错误的输出是可以通过错误日志来自定义  ,让你输入的错误不再是“大黄页”,

    通过 errorhandler()来装饰函数之后你的所有的输入错误的函数你都会进入这个函数中,然后我没可以自定义错误日志的输出

    errorhandler("报错响应码")

    @app.errorhandler(404)  #当报错是404的时候就走这个函数
    def handle_bad_request(e):
        # return 'bad request!', 400
        return "url错误"

    register_error_handler() 管理注册出错

    Flask使用SQLAlchemy进行连接

    首先安装SQLAlchemy

    python3环境下直接安装

    pip3 install  mysqlclient 如果下载不成功就要指定版本
    eg:
      python3 -m pip install mysqlclient==1.3.12 # 指定下载1.3.12版本 可以先去官网查查版本
      

    然后我们进行导入连接

    from flask_sqlalchemy import SQLAlchemy  #导入SQLALChemy
    
    app = Flask(__name__)
    #配置数据库连接
    app.config['SQLALCHEMY_DATABASE_URL'] = "mysql+pymysql:root:123456@127.0.0.1/mysql"  #连接你的mysql数据库 我的数据库的名字是root密码是123456
    db = SQLAlchemy(app)

    你的连接之后要在界面中的使用

    app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:123456@127.0.0.1:3306/db2'
    # app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True
    db = SQLAlchemy(app) #初始你的db变量
    
    app.config.from_object(Settings)  #接收你的配置文件
    app.config.from_object(UrlManage)
    
    @app.route("/api/hello")
    def hello():
        from sqlalchemy import text #导入text
        sql = text("select * from study")#查询study表
        result = db.engine.execute(sql)# 执行这个语句
        for row  in result:
            app.logger.error(row)
        return "hello world"

    flask-sqlacodegen

    依赖mysqlclient

    这是一个可以生成你的flask和数据库链接的表,当你的数据库中的字段创建完毕之后 然后再通过这个就可以生成类似于django的model表中信息一样

    在使用的时候如果是本地的数据库就是127.0.0.1,如果是外部的就要把数据库权限设置允许外部链接,要下载mysqlclient模块才可以使用,并且如果四python3必须要使用pymysql结合才能连接数据库 而python2是需要mysqldb模块并且保存的文件目录也要建立好

    flask-sqlacodegen mysql+pymysql://数据库账户:数据库密码@要链接的ip/链接表 --tables user --outfile 存储的目录 --flask

    
    
    # 从118.25.239.20下的food_db的数据库中把user表的数据生成到项目中的common/model.py文件中
    flask-sqlacodegen mysql+pymysql://root:123456@118.25.239.20/food_db --tables user --outfile common/model.py  --flask  

    #
    flask-sqlacodegen mysql+pymysql://root:123456@118.25.239.20/food_db --tables member --outfile common/models/member/member.py  --flask
  • 相关阅读:
    Repeater OnItemCommand 失效
    继承类时的 this 和 base
    想当然造成的的错误
    排序算法二叉树
    href 一个正则表达式的解析 ? 号解析
    给父窗口添加新的代码
    ValidationSummary 控件
    交叉表 学习
    定向思维 C# datediff
    cookie 问题
  • 原文地址:https://www.cnblogs.com/zhaoyunlong/p/10035773.html
Copyright © 2020-2023  润新知