当前位置: 首页 > news >正文

数据库flask访问

执行节点

import urllib.request
import jsondef main(sql: str) -> dict:api_url = "http://192.168.0.108:35003/execute_query"headers = {"Content-Type": "application/json"}data = json.dumps({"sql": sql}).encode("utf-8")try:req = urllib.request.Request(api_url, data=data, headers=headers, method="POST")with urllib.request.urlopen(req) as response:res_data = json.loads(response.read().decode("utf-8"))# 转成 JSON 字符串返回return {"result": json.dumps(res_data)}except Exception as e:# 异常信息也返回字符串return {"result": f"请求接口失败: {str(e)}"}

app.py

运行方法:

yum install -y python3

pip3 install flask pymysql

python3 app.py

firewall-cmd --add-port=35003/tcp --permanent

firewall-cmd --reload

from flask import Flask, request, jsonify
import pymysqlapp = Flask(__name__)@app.route("/execute_query", methods=['GET', 'POST'])
def execute_query():data = request.get_json()sql = data.get("sql", "").strip()if not sql:return jsonify({"error": "SQL语句不能为空"}), 400if not sql.lower().startswith("select"):return jsonify({"error": "只允许执行SELECT语句"}), 400try:# 建立数据库连接conn = pymysql.connect(host="192.168.0.108",  # 你的数据库IPuser="root",password="123456",database="mydb",cursorclass=pymysql.cursors.DictCursor)with conn.cursor() as cursor:cursor.execute(sql)result = cursor.fetchall()conn.close()return jsonify(result)except pymysql.Error as e:return jsonify({"error": f"数据库错误: {str(e)}"}), 500except Exception as e:return jsonify({"error": f"未知错误: {str(e)}"}), 500if __name__ == "__main__":app.run(host="0.0.0.0", port=35003)

http://www.dtcms.com/a/494981.html

相关文章:

  • 每日Reddit AI信息汇总 10.17
  • 高可用、高性能、高扩展集群核心区别详解以及高可用介绍
  • 【Linux网络】初识网络,网络的基础概念
  • 手机端网站动效类怎么做seo搜索优化 指数
  • 递归与迭代——力扣101.对称二叉树
  • 中扬立库 × 宁波卡帝亚:小家电之乡的仓储革命,破解制造仓储瓶颈
  • Linux《网络基础》
  • 网络层(IP)
  • 近红外相机在半导体制造领域的应用
  • 网站制作 深圳信科网络公司对比网站
  • 百度旗下所有app列表温州seo排名优化
  • 怎样做让百度收录网站域名设计方案翻译
  • 【whistle】whistle的安装和代理配置
  • 智能油脂润滑系统:降低维护成本与提升生产效率的双赢之道
  • CC17-加油站
  • 【办公类-120-01】20251016 UIBOT下载小说做成docx
  • RestTemplate发送Post请求报错:414 URI Too Long
  • 热力图:从逸出数据到宏观模式识别
  • 解决 gf / gau 与 Oh-My-Zsh 别名冲突的两种办法
  • 开源链动2+1模式、AI智能名片与S2B2C商城小程序:社群经济的数字化重构路径
  • 【详解vtkVoxelContoursToSurfaceFilter】:从有序XY平面轮廓生成三维表面
  • 版本控制器Git
  • 网站版建设南通制作企业网站
  • 网站后台管理系统的重要技术指标收录快的门户网站
  • 降本增效:如何用RustFS将企业存储TCO降低50%?
  • 当AI遇到信息系统:以AI+用户推荐的标签生命周期为例——标签为什么需要“死亡“?
  • 数据结构入门 (九):线索的“寻路”指引 —— 详解线索二叉树
  • wordpress 织梦十堰网站优化
  • Vue+ts 如何实现父组件和子组件通信
  • 广告制作网站源码高端网站设计公司