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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM