詳解Flask數(shù)據(jù)庫的連接與使用
更新時間:2023年02月24日 15:35:25 作者:雙天至尊-王天龍
這篇文章主要為大家想想介紹了Python中Flask數(shù)據(jù)庫的連接與使用,文中的示例代碼講解詳細(xì),具有一定的借鑒價值,感興趣的小伙伴可以學(xué)習(xí)一下
數(shù)據(jù)庫連接配置
HOST = "XXXXXXXXXXXXX"
PORT = 3310
USERNAME = "root"
PASSWORD = "@XXXXXXXXXXX"
DATABASE = "mydb"
SQLALCHEMY_DATABASE_URI = f"mysql+pymysql://{USERNAME}:{quote(PASSWORD)}@{HOST}:{PORT}/{DATABASE}?charset=utf8mb4"
SQLALCHEMY_TRACK_MODIFICATIONS = False
SQLALCHEMY_ECHO = True
創(chuàng)建實體類
from exts.DBServer import db
from sqlalchemy import Column, Integer, String, Date, DateTime
class Article(db.Model):
__tablename__ = "article"
id = Column(Integer, primay_key=True, autoincrement=True)
title = Column(String(100), nullable=True)
pub_time = Column(DateTime, nullable=True)
author = Column(String(100), nullable=True)
content = Column(String(10000), nullable=True)
origin = Column(String(1000), nullable=True)
controller:
import json
from flask.blueprints import Blueprint
from exts.DBServer import db
from ..model.Article import Article
from flask_sqlalchemy.query import Query
from flask_restful import marshal
from flask_restful import fields
article_bp = Blueprint("article", __name__, url_prefix="/article")
article_fields = {
"id": fields.Integer,
"title": fields.String,
"pub_time": fields.DateTime,
"author": fields.String,
"content": fields.String,
"origin": fields.String
}
@article_bp.route("/queryAll")
def queryAll():
query: Query = Article.query
articles = query.all()
article = query.get(1)
article2 = query.filter_by(author="XXX")
return json.dumps(marshal(articles, fields=article_fields),ensure_ascii=False)
配置打印SQL語句
from exts.DBServer import db
from sqlalchemy import Column, Integer, String
class User(db.Model):
__tablename__ = "user"
id = Column(Integer, primary_key=True, autoincrement=True)
username = Column(String(100), nullable=True)
password = Column(String(100), nullable=True)
def __repr__(self):
return "User %r" % self.body
或、與、非和排序
@user_bp.route("/query")
def query_match():
query: Query = User.query
result = query.filter(or_(User.username.contains("祥"), User.id == 1))
return json.dumps(marshal(result.all(), fields=user_fields), ensure_ascii=False)
@user_bp.route("/in")
def in_sql():
query: Query = User.query
result = query.order_by(-User.password, -User.id)
return json.dumps(marshal(result.all(), fields=user_fields), ensure_ascii=False)到此這篇關(guān)于詳解Flask數(shù)據(jù)庫的連接與使用的文章就介紹到這了,更多相關(guān)Flask數(shù)據(jù)庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python3.10及以上版本編譯安裝ssl模塊的詳細(xì)過程
最近搞安裝ssl模塊每天都弄到很晚,所以這里給大家整理下,這篇文章主要給大家介紹了關(guān)于python3.10及以上版本編譯安裝ssl模塊的詳細(xì)過程,文中介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05
pycharm設(shè)置python文件模板信息過程圖解
這篇文章主要介紹了pycharm設(shè)置python文件模板信息過程圖解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-03-03
PyCharm2020.1.1與Python3.7.7的安裝教程圖文詳解
這篇文章主要介紹了PyCharm2020.1.1與Python3.7.7的安裝教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08

