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

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 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数据


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
22天前
|
关系型数据库 MySQL 数据库
轻松入门MySQL:精准查询,巧用WHERE与HAVING,数据库查询如虎添翼(7)
轻松入门MySQL:精准查询,巧用WHERE与HAVING,数据库查询如虎添翼(7)
|
1月前
|
SQL 缓存 PHP
PHP技术探究:优化数据库查询效率的实用方法
本文将深入探讨PHP中优化数据库查询效率的实用方法,包括索引优化、SQL语句优化以及缓存机制的应用。通过合理的优化策略和技巧,可以显著提升系统性能,提高用户体验,是PHP开发者不容忽视的重要议题。
|
1月前
|
XML 关系型数据库 MySQL
python将word(doc或docx)的内容导入mysql数据库
用python先把doc文件转换成docx文件(这一步也可以不要后续会说明),然后读取docx的文件并另存为htm格式的文件(上一步可以直接把doc文件另存为htm),python根据bs4获取p标签里的内容,如果段落中有图片则保存图片。(图片在word文档中的位置可以很好的还原到生成的数据库内容) 我见网上有把docx压缩后解压获取图片的,然后根据在根据xml来读取图片的位置,我觉得比较繁琐。用docx模块读取段落的时候还需要是不是判断段落中有分页等,然而转成htm之后就不用判断那么多直接判断段落里的样式或者图片等就可以了。
27 1
|
18天前
|
人工智能 机器人 C++
【C++/Python】Windows用Swig实现C++调用Python(史上最简单详细,80岁看了都会操作)
【C++/Python】Windows用Swig实现C++调用Python(史上最简单详细,80岁看了都会操作)
|
1天前
|
SQL Java 数据库连接
Java从入门到精通:2.3.2数据库编程——了解SQL语言,编写基本查询语句
Java从入门到精通:2.3.2数据库编程——了解SQL语言,编写基本查询语句
|
2天前
|
关系型数据库 MySQL Windows
windows安装MySQL5.7教程
windows安装MySQL5.7教程
9 0
|
6天前
|
SQL 关系型数据库 MySQL
Python与MySQL数据库交互:面试实战
【4月更文挑战第16天】本文介绍了Python与MySQL交互的面试重点,包括使用`mysql-connector-python`或`pymysql`连接数据库、执行SQL查询、异常处理、防止SQL注入、事务管理和ORM框架。易错点包括忘记关闭连接、忽视异常处理、硬编码SQL、忽略事务及过度依赖低效查询。通过理解这些问题和提供策略,可提升面试表现。
25 6
|
6天前
|
SQL 关系型数据库 MySQL
mysql 数据库查询 查询字段用逗号隔开 关联另一个表并显示
mysql 数据库查询 查询字段用逗号隔开 关联另一个表并显示
17 2
|
9天前
|
SQL 存储 Oracle
关系型数据库查询数据的语句
本文介绍了关系型数据库中的基本SQL查询语句,包括选择所有或特定列、带条件查询、排序、分组、过滤分组、表连接、限制记录数及子查询。SQL还支持窗口函数、存储过程等高级功能,是高效管理数据库的关键。建议深入学习SQL及相应数据库系统文档。
9 2
|
23天前
|
缓存 监控 数据库
优化数据库查询性能的八大技巧
在今天的互联网时代,数据库是许多应用程序的核心组件之一。优化数据库查询性能是提升应用程序整体性能的关键。本文介绍了八种有效的技巧,帮助开发人员提高数据库查询性能,从而提升应用程序的响应速度和用户体验。