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