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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: 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数据


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
缓存 JSON 关系型数据库
MySQL 查询优化分析 - 常用分析方法
本文介绍了MySQL查询优化分析的常用方法EXPLAIN、Optimizer Trace、Profiling和常用监控指标。
|
4月前
|
算法 关系型数据库 MySQL
join查询可以⽆限叠加吗?MySQL对join查询有什么限制吗?
大家好,我是 V 哥。本文详细探讨了 MySQL 中 `JOIN` 查询的限制及其优化方法。首先,`JOIN` 查询不能无限叠加,存在资源(CPU、内存、磁盘 I/O)、性能和语法等方面的限制。过多的 `JOIN` 操作会导致数据库性能急剧下降。其次,介绍了三种常见的 `JOIN` 查询算法:嵌套循环连接(NLJ)、索引嵌套连接(INL)和基于块的嵌套循环连接(BNL),并分析了它们的触发条件和性能特点。最后,分享了优化 `JOIN` 查询的方法,包括 SQL 语句优化、索引优化、数据库配置调整等。关注 V 哥,了解更多技术干货,点赞👍支持,一起进步!
|
4月前
|
SQL 关系型数据库 MySQL
Python中使用MySQL模糊查询的方法
本文介绍了两种使用Python进行MySQL模糊查询的方法:一是使用`pymysql`库,二是使用`mysql-connector-python`库。通过这两种方法,可以连接MySQL数据库并执行模糊查询。具体步骤包括安装库、配置数据库连接参数、编写SQL查询语句以及处理查询结果。文中详细展示了代码示例,并提供了注意事项,如替换数据库连接信息、正确使用通配符和关闭数据库连接等。确保在实际应用中注意SQL注入风险,使用参数化查询以保障安全性。
|
6月前
|
SQL 关系型数据库 MySQL
【MySQL基础篇】多表查询(隐式/显式内连接、左/右外连接、自连接查询、联合查询、标量/列/行/表子查询)
本文详细介绍了MySQL中的多表查询,包括多表关系、隐式/显式内连接、左/右外连接、自连接查询、联合查询、标量/列/行/表子查询及其实现方式,一文全面读懂多表联查!
【MySQL基础篇】多表查询(隐式/显式内连接、左/右外连接、自连接查询、联合查询、标量/列/行/表子查询)
|
6月前
|
关系型数据库 MySQL 数据库
【MySQL基础篇】MySQL概述、Windows下载MySQL8.0超详细图文安装教程
在这一章节,主要介绍两个部分,数据库相关概念及MySQL数据库的介绍、下载、安装、启动及连接。接着,详细描述了MySQL 8.0的版本选择与下载,推荐使用社区版(免费)。安装过程包括自定义安装路径、配置环境变量、启动和停止服务、以及客户端连接测试。此外,还提供了在同一台电脑上安装多个MySQL版本的方法及卸载步骤。最后,解释了关系型数据库(RDBMS)的特点,即基于二维表存储数据,使用SQL语言进行操作,格式统一且便于维护。通过具体的结构图展示了MySQL的数据模型,说明了数据库服务器、数据库、表和记录之间的层次关系。
1556 1
【MySQL基础篇】MySQL概述、Windows下载MySQL8.0超详细图文安装教程
|
5月前
|
缓存 关系型数据库 MySQL
【深入了解MySQL】优化查询性能与数据库设计的深度总结
本文详细介绍了MySQL查询优化和数据库设计技巧,涵盖基础优化、高级技巧及性能监控。
1218 1
|
6月前
|
安全 关系型数据库 MySQL
Windows Server 安装 MySQL 8.0 详细指南
安装 MySQL 需要谨慎,特别注意安全配置和权限管理。根据实际业务需求调整配置,确保数据库的性能和安全。
740 9
|
6月前
|
SQL 关系型数据库 MySQL
MySQL 窗口函数详解:分析性查询的强大工具
MySQL 窗口函数从 8.0 版本开始支持,提供了一种灵活的方式处理 SQL 查询中的数据。无需分组即可对行集进行分析,常用于计算排名、累计和、移动平均值等。基本语法包括 `function_name([arguments]) OVER ([PARTITION BY columns] [ORDER BY columns] [frame_clause])`,常见函数有 `ROW_NUMBER()`, `RANK()`, `DENSE_RANK()`, `SUM()`, `AVG()` 等。窗口框架定义了计算聚合值时应包含的行。适用于复杂数据操作和分析报告。
310 11
|
6月前
|
存储 Oracle 关系型数据库
索引在手,查询无忧:MySQL索引简介
MySQL 是一款广泛使用的关系型数据库管理系统,在2024年5月的DB-Engines排名中得分1084,仅次于Oracle。本文介绍MySQL索引的工作原理和类型,包括B+Tree、Hash、Full-text索引,以及主键、唯一、普通索引等,帮助开发者优化查询性能。索引类似于图书馆的分类系统,能快速定位数据行,极大提高检索效率。
133 8
|
6月前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
806 15

推荐镜像

更多