温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Flask数据库如何连接与使用

发布时间:2023-02-24 16:33:59 来源:亿速云 阅读:136 作者:iii 栏目:开发技术

本篇内容主要讲解“Flask数据库如何连接与使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Flask数据库如何连接与使用”吧!

数据库连接配置

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

创建实体类

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)

到此,相信大家对“Flask数据库如何连接与使用”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI