python开发低代码数据可视化大屏:flask_sqlalchemy增删改查语句

简介: python开发低代码数据可视化大屏:flask_sqlalchemy增删改查语句

config.py配置文件

# 配置数据库信息
db_config = {
    'host': 'localhost',
    'port': '3306',
    'database': 'bdpoi',
    'username': 'bdpoi',
    'password': 'rKADFaJxAG2b7Lfd'
}


操作语句

import json
from config import *
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy import text
app = Flask(__name__)
app.config['SECRET_KEY'] = 'xufeJjtC9Lsuv8m7D7ZZfph3a6MjpMpJ'
# url的格式为,数据库的协议://用户名:密码@ip地址:端口号(默认可以不写)/数据库名
app.config["SQLALCHEMY_DATABASE_URI"] = 'mysql://{username}:{password}@{host}:{port}/{database}'.format(**db_config)
# 动态追踪数据库的修改
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = True
app.config['SQLALCHEMY_ECHO'] = True
# 创建数据库的操作对象
db = SQLAlchemy(app)
'''
db.Column属性
primary_key 如果设为 True,这列就是表的主键
unique  如果设为 True,这列不允许出现重复的值
index 如果设为 True,为这列创建索引,提升查询效率
nullable  如果设为 True,这列允许使用空值;如果设为 False,这列不允许使用空值
default 为这列定义默认值
'''
class Poi(db.Model):
    __tablename__ = "po_poi"
    poi_id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    poi_name = db.Column(db.String(255), nullable=True)
    poi_category_id = db.Column(db.Integer, nullable=True)
    # repr()方法显示一个可读字符串
    def __repr__(self):
        return 'Poi:%s' % self.poi_name
# 默认首页
@app.route("/")
def get_index():
    return "py-LockDataV API"
# 创建数据表
@app.route("/cre")
def create_index():
    db.create_all()
    return "创建数据表,状态:OK"
# 新增数据
@app.route("/add")
def add_index():
    p1 = Poi(poi_name='宁波商会', poi_category_id="2")
    p2 = Poi(poi_name='大海大厦', poi_category_id="1")
    p3 = Poi(poi_name='国骅大厦', poi_category_id="2")
    db.session.add_all([p1, p2, p3])
    db.session.commit()
    # 如何防止重复提交
    return "新增数据,状态:OK"
# 删除数据
@app.route("/del")
@app.route("/del/")
@app.route("/del/<poi_id>")
def del_index(poi_id=None):
    if poi_id:
        # get_or_404 如果id不存在,抛出404页面
        # del_id = Poi.query.get_or_404(poi_id)
        # get方式
        del_id = Poi.query.get(poi_id)
        if del_id:
            db.session.delete(del_id)
            db.session.commit()
        else:
            return "Id不存在数据,状态:Fail"
        return "删除数据,状态:OK"
    else:
        return "poi_id为空,越权操作"
# 查询数据
@app.route("/get")
def get_data():
    # in查询
    # Poi.query.filter(Poi.poi_name.in_('A', 'B', 'C', 'D'))
    # 限制查询
    # Poi.query.filter(poi_name=18).offset(2).limit(3)  # 跳过二条开始查询,限制输出3条
    # 排序
    # results = Poi.query.order_by('poi_id')  # 按默认升序,在前面加-号为降序'-age'
    # results = Poi.query.order_by(text("-poi_id"))
    results = Poi.query.filter_by(poi_category_id=2).all()
    # 定义字典和序列
    rows = []
    data = {}
    for rs in results:
        row = {"poi_id": rs.poi_id, "poi_name": rs.poi_name, "poi_category_id": rs.poi_category_id}
        rows.append(row)
    data['code'] = 0
    data['msg'] = 'OK'
    data['data'] = rows
    # 输出标准的JSON字符串
    json_str = json.dumps(data, ensure_ascii=False)
    return json_str
# 获取数据库记录API接口
@app.route("/poi")
@app.route("/poi/")
@app.route("/poi/<pid>")
def get_poi(pid=None):
    # total = Poi.query.count()
    # print(total)
    if pid is None:
        results = Poi.query.all()
    else:
        results = Poi.query.filter_by(poi_id=pid).all()
    # 定义字典和序列
    rows = []
    data = {}
    for rs in results:
        row = {"poi_id": rs.poi_id, "poi_name": rs.poi_name, "poi_category_id": rs.poi_category_id}
        rows.append(row)
    data['code'] = 0
    data['msg'] = 'OK'
    data['data'] = rows
    # 输出标准的JSON字符串
    json_str = json.dumps(data, ensure_ascii=False)
    return json_str
if __name__ == '__main__':
    app.run(debug=True)


lockdatav Done!

相关文章
|
9月前
|
存储 监控 算法
淘宝买家秀 API开发实录Python(2025)
本文讲述了作者在电商开发领域,尤其是对接淘宝买家秀 API 接口过程中所经历的挑战与收获。从申请接入、签名验证、频率限制到数据处理和实时监控,作者分享了多个实战经验与代码示例,帮助开发者更高效地获取和处理买家秀数据,提升开发效率。
|
8月前
|
设计模式 人工智能 API
AI智能体开发实战:17种核心架构模式详解与Python代码实现
本文系统解析17种智能体架构设计模式,涵盖多智能体协作、思维树、反思优化与工具调用等核心范式,结合LangChain与LangGraph实现代码工作流,并通过真实案例验证效果,助力构建高效AI系统。
944 7
|
10月前
|
数据采集 存储 数据库
Python爬虫开发:Cookie池与定期清除的代码实现
Python爬虫开发:Cookie池与定期清除的代码实现
|
9月前
|
算法 程序员 API
电商程序猿开发实录:淘宝商品python(2)
本文分享了开发者在对接淘宝商品详情API过程中的真实经历,涵盖权限申请、签名验证、限流控制、数据解析及消息订阅等关键环节,提供了实用的Python代码示例,帮助开发者高效调用API,提升系统稳定性与数据处理能力。
|
8月前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的首选语言
Python:现代编程的首选语言
1372 102
|
8月前
|
数据采集 机器学习/深度学习 算法框架/工具
Python:现代编程的瑞士军刀
Python:现代编程的瑞士军刀
475 104
|
8月前
|
人工智能 自然语言处理 算法框架/工具
Python:现代编程的首选语言
Python:现代编程的首选语言
368 103
|
8月前
|
机器学习/深度学习 人工智能 数据挖掘
Python:现代编程的首选语言
Python:现代编程的首选语言
390 82
|
7月前
|
Python
Python编程:运算符详解
本文全面详解Python各类运算符,涵盖算术、比较、逻辑、赋值、位、身份、成员运算符及优先级规则,结合实例代码与运行结果,助你深入掌握Python运算符的使用方法与应用场景。
480 3
|
7月前
|
数据处理 Python
Python编程:类型转换与输入输出
本教程介绍Python中输入输出与类型转换的基础知识,涵盖input()和print()的使用,int()、float()等类型转换方法,并通过综合示例演示数据处理、错误处理及格式化输出,助你掌握核心编程技能。
703 3

推荐镜像

更多