windows python flask与mysql数据库写入查询

简介: windows python flask与mysql数据库写入查询

windows python flask与mysql数据库写入查询

tags: flask

文章目录

windows python flask与mysql数据库写入查询

1. 创建一个数据库

1.1 docker创建mysql

1.2 windows创建mysql

2. 创建并初始化一个库

2.1 查询并可以添加数据库信息的脚本

2.2 提交页面表单信息到数据库

2.2.1 app.py

2.2.2 db.py

2.2.3 templates/show_add_user.html

mysql客户端:

sqlyog下载

1. 创建一个数据库

1.1 docker创建mysql

$ docker run --name first-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d docker.io/mysql:5.7.22

1.2 windows创建mysql

参考链接

2. 创建并初始化一个库

连接数据库

1832b220aa754cd18c504acc7686a560.png

创建一个数据库mysqltest

1832b220aa754cd18c504acc7686a560.png

创建一个表

1832b220aa754cd18c504acc7686a560.png

添加一个user表

1832b220aa754cd18c504acc7686a560.png

2.1 查询并可以添加数据库信息的脚本

import pymysql
def get_conn():
    return pymysql.connect(
        host='192.168.211.15',
        user='root',
        password='123456',
        database='mysqltest',
        charset='utf8'
    )
def query_data(sql):
    conn = get_conn()
    try:
        cursor = conn.cursor(pymysql.cursors.DictCursor)
        cursor.execute(sql)
        return cursor.fetchall()
    finally:
        conn.close()
def insert_or_update_data(sql):
    conn = get_conn()
    try:
        cursor = conn.cursor()
        cursor.execute(sql)
        conn.commit()
    finally:
        conn.close()
if __name__ == '__main__':
    sql = "insert user (name, sex, age, email) values('xiaoli', 'mam', 30, 'xiaoli@qq.com');"
    insert_or_update_data(sql)  #插入一个用户信息
    sql = "select * from user;"
    datas = query_data(sql)  # 查询一个信息
    import pprint
    pprint.pprint(datas)

执行结果:

[{'age': 12,
  'email': '1234@163.com',
  'id': 1,
  'name': 'xiaoming',
  'sex': 'man'},
 {'age': 15,
  'email': 'abc@163.com',
  'id': 2,
  'name': 'xiaohong',
  'sex': 'women'},
 {'age': 18,
  'email': 'sgsgsgs@163.com',
  'id': 3,
  'name': 'ligang',
  'sex': 'man'},
 {'age': 20,
  'email': 'sgsgs@gmail.com',
  'id': 4,
  'name': 'zhaoming',
  'sex': 'man'},
 {'age': 30, 'email': 'xiaoli@qq.com', 'id': 5, 'name': 'xiaoli', 'sex': 'mam'}]

查看数据库user表

1832b220aa754cd18c504acc7686a560.png

2.2 提交页面表单信息到数据库

2.2.1 app.py

from flask import Flask, render_template, request
import json
import db
app = Flask(__name__)
@app.route("/show_add_user")
def show_add_user():
    return render_template("show_add_user.html")
@app.route("/do_add_user", methods=['POST'])
def do_add_user():
    print(request.form)
    name = request.form.get("name")
    sex = request.form.get("sex")
    age = request.form.get("age")
    email = request.form.get("email")
    sql = f"""            
        insert into user (name, sex, age, email) values ('{name}', '{sex}', '{age}', '{email}')
        """                 #'f'支持 '{变量}'格式
    print(sql)
    db.insert_or_update_data(sql)  #执行插入数据函数
    return "sucess"
if __name__ == '__main__':
    app.run(host='192.168.1.4',debug=True)

2.2.2 db.py

import pymysql
def get_conn():
    return pymysql.connect(
        host='192.168.211.15',
        user='root',
        password='123456',
        database='mysqltest',
        charset='utf8'
    )
def query_data(sql):
    conn = get_conn()
    try:
        cursor = conn.cursor(pymysql.cursors.DictCursor)
        cursor.execute(sql)
        return cursor.fetchall()
    finally:
        conn.close()
def insert_or_update_data(sql):
    conn = get_conn()
    try:
        cursor = conn.cursor()
        cursor.execute(sql)
        conn.commit()
    finally:
        conn.close()
if __name__ == '__main__':
    sql = "insert user (name, sex, age, email) values('xiaoli', 'mam', 30, 'xiaoli@qq.com');"
    insert_or_update_data(sql)
    sql = "select * from user;"
    datas = query_data(sql)
    import pprint
    pprint.pprint(datas)

2.2.3 templates/show_add_user.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>提交用户信息</title>
</head>
<body>
<div>
    <h1>提交用户信息:</h1>
    <form action="/do_add_user" method="post">  #执行/do_add_user路由函数
    <table border="1">
        <tr>
            <th>用户名</th>
            <th><input type="text" name="name"> </th>
        </tr>
        <tr>
            <th>性别</th>
            <th><input type="text" name="sex"> </th>
        </tr>
        <tr>
            <th>年龄</th>
            <th><input type="text" name="age"> </th>
        </tr>
        <tr>
            <th>邮箱</th>
            <th><input type="text" name="email"> </th>
        </tr>
        <tr>
            <th>提交</th>
            <th><input type="submit" name="submit" value="提交"> </th>
        </tr>
    </table>
    </form>
</div>
</body>
</html>

执行后,界面访问http://ip:5000/show_add_user

1832b220aa754cd18c504acc7686a560.png

输入用户信息,

提交后返回成功

1832b220aa754cd18c504acc7686a560.png

查看数据库user表信息,添加成功。

1832b220aa754cd18c504acc7686a560.png

更多阅读:


linux python web flask Hello World实战

windows python web flask Hello World实战

windows python web flask 模板开放实战

windows python web flask获取请求参数数据

windows python flask返回json数据


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
人工智能 安全 机器人
无代码革命:10分钟打造企业专属数据库查询AI机器人
随着数字化转型加速,企业对高效智能交互解决方案的需求日益增长。阿里云AppFlow推出的AI助手产品,借助创新网页集成技术,助力企业打造专业数据库查询助手。本文详细介绍通过三步流程将AI助手转化为数据库交互工具的核心优势与操作指南,包括全场景适配、智能渲染引擎及零代码配置等三大技术突破。同时提供Web集成与企业微信集成方案,帮助企业实现便捷部署与安全管理,提升内外部用户体验。
1207 12
无代码革命:10分钟打造企业专属数据库查询AI机器人
|
Cloud Native 关系型数据库 分布式数据库
|
并行计算 关系型数据库 MySQL
如何用 esProc 将数据库表转储提速查询
当数据库查询因数据量大或繁忙变慢时,可借助 esProc 将数据导出为文件进行计算,大幅提升性能。以 MySQL 的 3000 万行订单数据为例,两个典型查询分别耗时 17.69s 和 63.22s。使用 esProc 转储为二进制行存文件 (btx) 或列存文件 (ctx),结合游标过滤与并行计算,性能显著提升。例如,ctx 并行计算将原查询时间缩短至 0.566s,TopN 运算提速达 30 倍。esProc 的简洁语法和高效文件格式,特别适合历史数据的复杂分析场景。
|
SQL 数据库 开发者
Python中使用Flask-SQLAlchemy对数据库的增删改查简明示例
这样我们就对Flask-SQLAlchemy进行了一次简明扼要的旅程,阐述了如何定义模型,如何创建表,以及如何进行基本的数据库操作。希望你在阅读后能对Flask-SQLAlchemy有更深入的理解,这将为你在Python世界中从事数据库相关工作提供极大的便利。
1081 77
|
SQL 关系型数据库 MySQL
如何优化SQL查询以提高数据库性能?
这篇文章以生动的比喻介绍了优化SQL查询的重要性及方法。它首先将未优化的SQL查询比作在自助餐厅贪多嚼不烂的行为,强调了只获取必要数据的必要性。接着,文章详细讲解了四种优化策略:**精简选择**(避免使用`SELECT *`)、**专业筛选**(利用`WHERE`缩小范围)、**高效联接**(索引和限制数据量)以及**使用索引**(加速搜索)。此外,还探讨了如何避免N+1查询问题、使用分页限制结果、理解执行计划以及定期维护数据库健康。通过这些技巧,可以显著提升数据库性能,让查询更高效流畅。
|
数据库
【YashanDB知识库】数据库用户所拥有的权限查询
【YashanDB知识库】数据库用户所拥有的权限查询
|
Python Windows
六、【windows】更改 Python 的 pip install 默认安装依赖路径,及cmd下pip安装成功的包,pycharm却找不到
六、【windows】更改 Python 的 pip install 默认安装依赖路径,及cmd下pip安装成功的包,pycharm却找不到
3976 0
六、【windows】更改 Python 的 pip install 默认安装依赖路径,及cmd下pip安装成功的包,pycharm却找不到
|
5G Python
Windows11搭建Python环境(Anaconda安装与使用)
Windows11搭建Python环境(Anaconda安装与使用)
1077 0
|
网络安全 Python Windows
windows上python3.8安装virtualenv遇到的一些问题
windows上python3.8安装virtualenv遇到的一些问题
197 0

推荐镜像

更多