flask操作數(shù)據(jù)庫相關(guān)配置及實(shí)現(xiàn)示例步驟全解
引言
今天上純干貨,直接上代碼了(下面的代碼是我工作中實(shí)際使用的代碼,已經(jīng)驗(yàn)證可以正確地向數(shù)據(jù)庫中添加記錄)。
一、在配置文件config.py中添加MySQL數(shù)據(jù)庫的相關(guān)配置
DRIVER = 'pymysql' USERNAME = "admin" PASSWORD = "admin+123" # 每個(gè)人設(shè)置的名字和賬號(hào)會(huì)不同,這里是自己設(shè)定的賬號(hào)密碼 HOST = '127.0.0.1' PORT = '3306' DATABASE = 'testdb' # 這里是數(shù)據(jù)庫文件名 SQLALCHEMY_DATABASE_URI = '{}+{}://{}:{}@{}:{}/{}?charset=utf8'.format(DIALECT, DRIVER, USERNAME, PASSWORD, HOST, PORT, DATABASE) SQLALCHEMY_TRACK_MODIFICATIONS = True SQLALCHEMY_ECHO = True
二、在msyqlconfig.py中創(chuàng)建數(shù)據(jù)庫全局實(shí)例
from flask_sqlalchemy import SQLAlchemy db = SQLAlchemy()
三、將該實(shí)例綁定到app中,供整個(gè)項(xiàng)目的多個(gè)藍(lán)圖共同使用
from flask import Flask from config.mysqlconfig import db from models import usermodel,assetmodel # 在調(diào)用create_all()之前,必須導(dǎo)入需要操作的模型,否則不會(huì)創(chuàng)建表 app = Flask(__name__) # 初始化flask應(yīng)用 app.config.from_object('config.config') db.init_app(app) #使用app對(duì)sqlalchemy進(jìn)行初始化綁定 with app.app_context(): db.create_all() # 在調(diào)用create_all()之前,必須導(dǎo)入需要操作的模型,否則不會(huì)創(chuàng)建表 from api.userapi import user_blueprint from api.testdataapi import testdata_blueprint app.register_blueprint(user_blueprint) # 將管理員的藍(lán)圖注冊(cè)到應(yīng)用中 app.register_blueprint(testdata_blueprint) # 將測試數(shù)據(jù)管理的藍(lán)圖注冊(cè)到應(yīng)用中
四、在models/定義數(shù)據(jù)庫模型
from config.mysqlconfig import db from views.responsehandler import * class AssetModel(db.Model): __tablename__ = 'asset' id = db.Column(db.Integer, primary_key=True, autoincrement=True) init_date = db.Column(db.DateTime, nullable=False) user_name = db.Column(db.String(20), unique=True, nullable=False) fund_account = db.Column(db.String(20), nullable=False) fund_days = db.Column(db.String(30), nullable=False) fund_money = db.Column(db.String(20), nullable=False) update_time = db.Column(db.DateTime, nullable=False) def __init__(self, user_name, init_date,fund_account, fund_days, fund_money, update_time): self.user_name = user_name self.init_date = init_date self.fund_account = fund_account self.fund_days = fund_days self.fund_money = fund_money self.update_time = str(update_time)
五、完善后端接口,實(shí)現(xiàn)調(diào)用接口時(shí)將數(shù)據(jù)插入到數(shù)據(jù)庫表
@testdata_blueprint.route('/add_data', methods=['POST']) def add_data(): username = request.form.get('username') fund_account = request.form.get("account") days = request.form.get("days") asset = request.form.get("asset") try: fund_account = int(fund_account) days = int(days) asset = float(asset) total_asset = days * asset init_date = update_time=time.strftime("%Y-%m-%d",time.localtime()) except Exception as e: print(e) asset_data = AssetModel(init_date=init_date,user_name=username,fund_account=fund_account,fund_days=days,fund_money=total_asset,update_time=time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()) ) db.session.add(asset_data) db.session.commit()
以上就是flask操作數(shù)據(jù)庫相關(guān)配置及實(shí)現(xiàn)示例步驟全解的詳細(xì)內(nèi)容,更多關(guān)于flask操作數(shù)據(jù)庫的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python開發(fā)一個(gè)功能齊全的IM聊天工具(附實(shí)例代碼)
即時(shí)通訊(IM)工具現(xiàn)在已經(jīng)很常見了,從簡單的文本聊天到文件傳輸、音視頻通話,IM 工具功能豐富,那么,本文使用Python開發(fā)一個(gè)基礎(chǔ)的IM聊天工具,包括:客戶端和服務(wù)端架構(gòu)、實(shí)時(shí)消息發(fā)送與接收、多用戶聊天支持、一個(gè)簡單的圖形用戶界面(GUI)2024-12-12jupyter notebook 的工作空間設(shè)置操作
這篇文章主要介紹了jupyter notebook 的工作空間設(shè)置操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-04-04python裝飾器-限制函數(shù)調(diào)用次數(shù)的方法(10s調(diào)用一次)
下面小編就為大家分享一篇python裝飾器-限制函數(shù)調(diào)用次數(shù)的方法(10s調(diào)用一次),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-04-04在Python中使用cookielib和urllib2配合PyQuery抓取網(wǎng)頁信息
這篇文章主要介紹了在Python中使用cookielib和rllib2配合PyQuery抓取網(wǎng)頁信息的教程,主要是利用PyQuery解析HTML來實(shí)現(xiàn),需要的朋友可以參考下2015-04-04Python OpenCV基于霍夫圈變換算法檢測圖像中的圓形
這篇文章主要介紹了通過霍夫圈變換算法檢測圖像中的圓形,文中用到的函數(shù)為cv2.HoughCircles(),該函數(shù)可以很好地檢測圓心。感興趣的小伙伴可以了解一下2021-12-12Python中日期和時(shí)間的互相轉(zhuǎn)換操作方法
Python的datetime模塊提供了一套強(qiáng)大而靈活的工具,使我們能夠輕松地在不同的時(shí)間表示形式間相互轉(zhuǎn)換,并進(jìn)行復(fù)雜的時(shí)間計(jì)算,本文通過一個(gè)實(shí)用的例子向大家展示如何在Python中高效地進(jìn)行這些操作,感興趣的朋友一起看看吧2024-05-05Flask SocketIO實(shí)現(xiàn)動(dòng)態(tài)繪圖的示例詳解
Flask-SocketIO 是基于 Flask 的一個(gè)擴(kuò)展,用于簡化在 Flask 應(yīng)用中集成 WebSocket 功能,本文主要介紹了Flask SocketIO如何實(shí)現(xiàn)動(dòng)態(tài)繪圖,需要的可以參考下2023-11-11python實(shí)現(xiàn)登錄與注冊(cè)系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)登錄與注冊(cè)系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11