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!

相关文章
|
6天前
|
API 数据库 数据安全/隐私保护
Flask框架在Python面试中的应用与实战
【4月更文挑战第18天】Django REST framework (DRF) 是用于构建Web API的强力工具,尤其适合Django应用。本文深入讨论DRF面试常见问题,包括视图、序列化、路由、权限控制、分页过滤排序及错误处理。同时,强调了易错点如序列化器验证、权限认证配置、API版本管理、性能优化和响应格式统一,并提供实战代码示例。了解这些知识点有助于在Python面试中展现优秀的Web服务开发能力。
22 1
|
3天前
|
数据采集 存储 人工智能
【Python+微信】【企业微信开发入坑指北】4. 企业微信接入GPT,只需一个URL,自动获取文章总结
【Python+微信】【企业微信开发入坑指北】4. 企业微信接入GPT,只需一个URL,自动获取文章总结
15 0
|
3天前
|
人工智能 机器人 API
【Python+微信】【企业微信开发入坑指北】3. 如何利用企业微信API给微信群推送消息
【Python+微信】【企业微信开发入坑指北】3. 如何利用企业微信API给微信群推送消息
7 0
|
3天前
|
缓存 人工智能 API
【Python+微信】【企业微信开发入坑指北】2. 如何利用企业微信API主动给用户发应用消息
【Python+微信】【企业微信开发入坑指北】2. 如何利用企业微信API主动给用户发应用消息
8 0
|
6天前
|
SQL 中间件 API
Flask框架在Python面试中的应用与实战
【4月更文挑战第18天】**Flask是Python的轻量级Web框架,以其简洁API和强大扩展性受欢迎。本文深入探讨了面试中关于Flask的常见问题,包括路由、Jinja2模板、数据库操作、中间件和错误处理。同时,提到了易错点,如路由冲突、模板安全、SQL注入,以及请求上下文管理。通过实例代码展示了如何创建和管理数据库、使用表单以及处理请求。掌握这些知识将有助于在面试中展现Flask技能。**
12 1
Flask框架在Python面试中的应用与实战
|
7天前
|
数据安全/隐私保护 Python
Python Flask-Mail实现邮件发送
Python Flask-Mail实现邮件发送
|
8天前
|
前端开发 Java Go
开发语言详解(python、java、Go(Golong)。。。。)
开发语言详解(python、java、Go(Golong)。。。。)
|
8天前
|
数据可视化 数据挖掘 定位技术
Python 基于 Matplotlib 实现数据可视化(二)
Python 基于 Matplotlib 实现数据可视化(二)
21 0
|
10天前
|
数据可视化 算法 API
Python数据可视化-seaborn Iris鸢尾花数据
Python数据可视化-seaborn Iris鸢尾花数据
20 0
|
10天前
|
监控 安全 数据库
Flask应用部署指南:从开发到生产环境
【4月更文挑战第16天】本文是Flask应用从开发到生产的部署指南,涵盖开发环境准备、应用开发、部署方案选择、生产环境配置、应用部署、监控与维护。确保安装Python、Flask及依赖库,使用文本编辑器或IDE编写代码,关注应用安全与性能。选择WSGI服务器、Docker或云服务平台部署,配置生产环境,确保安全性,然后部署应用并进行监控维护,定期更新修复问题,保证应用稳定运行。