flask操作數(shù)據(jù)庫相關(guān)配置及實現(xiàn)示例步驟全解
引言
今天上純干貨,直接上代碼了(下面的代碼是我工作中實際使用的代碼,已經(jīng)驗證可以正確地向數(shù)據(jù)庫中添加記錄)。
一、在配置文件config.py中添加MySQL數(shù)據(jù)庫的相關(guān)配置
DRIVER = 'pymysql'
USERNAME = "admin"
PASSWORD = "admin+123" # 每個人設(shè)置的名字和賬號會不同,這里是自己設(shè)定的賬號密碼
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ù)庫全局實例
from flask_sqlalchemy import SQLAlchemy db = SQLAlchemy()
三、將該實例綁定到app中,供整個項目的多個藍(lán)圖共同使用
from flask import Flask
from config.mysqlconfig import db
from models import usermodel,assetmodel # 在調(diào)用create_all()之前,必須導(dǎo)入需要操作的模型,否則不會創(chuàng)建表
app = Flask(__name__) # 初始化flask應(yīng)用
app.config.from_object('config.config')
db.init_app(app) #使用app對sqlalchemy進(jìn)行初始化綁定
with app.app_context():
db.create_all() # 在調(diào)用create_all()之前,必須導(dǎo)入需要操作的模型,否則不會創(chuàng)建表
from api.userapi import user_blueprint
from api.testdataapi import testdata_blueprint
app.register_blueprint(user_blueprint) # 將管理員的藍(lán)圖注冊到應(yīng)用中
app.register_blueprint(testdata_blueprint) # 將測試數(shù)據(jù)管理的藍(lán)圖注冊到應(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)五、完善后端接口,實現(xiàn)調(diào)用接口時將數(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)配置及實現(xiàn)示例步驟全解的詳細(xì)內(nèi)容,更多關(guān)于flask操作數(shù)據(jù)庫的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python開發(fā)一個功能齊全的IM聊天工具(附實例代碼)
即時通訊(IM)工具現(xiàn)在已經(jīng)很常見了,從簡單的文本聊天到文件傳輸、音視頻通話,IM 工具功能豐富,那么,本文使用Python開發(fā)一個基礎(chǔ)的IM聊天工具,包括:客戶端和服務(wù)端架構(gòu)、實時消息發(fā)送與接收、多用戶聊天支持、一個簡單的圖形用戶界面(GUI)2024-12-12
jupyter notebook 的工作空間設(shè)置操作
這篇文章主要介紹了jupyter notebook 的工作空間設(shè)置操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04
python裝飾器-限制函數(shù)調(diào)用次數(shù)的方法(10s調(diào)用一次)
下面小編就為大家分享一篇python裝飾器-限制函數(shù)調(diào)用次數(shù)的方法(10s調(diào)用一次),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04
在Python中使用cookielib和urllib2配合PyQuery抓取網(wǎng)頁信息
這篇文章主要介紹了在Python中使用cookielib和rllib2配合PyQuery抓取網(wǎng)頁信息的教程,主要是利用PyQuery解析HTML來實現(xiàn),需要的朋友可以參考下2015-04-04
Python OpenCV基于霍夫圈變換算法檢測圖像中的圓形
這篇文章主要介紹了通過霍夫圈變換算法檢測圖像中的圓形,文中用到的函數(shù)為cv2.HoughCircles(),該函數(shù)可以很好地檢測圓心。感興趣的小伙伴可以了解一下2021-12-12
Flask SocketIO實現(xiàn)動態(tài)繪圖的示例詳解
Flask-SocketIO 是基于 Flask 的一個擴(kuò)展,用于簡化在 Flask 應(yīng)用中集成 WebSocket 功能,本文主要介紹了Flask SocketIO如何實現(xiàn)動態(tài)繪圖,需要的可以參考下2023-11-11

