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客户端:
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. 创建并初始化一个库
连接数据库
创建一个数据库mysqltest
创建一个表
添加一个user表
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表
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
输入用户信息,
提交后返回成功
查看数据库user表信息,添加成功。
更多阅读:
linux python web flask Hello World实战
windows python web flask Hello World实战
windows python web flask 模板开放实战
windows python web flask获取请求参数数据
windows python flask返回json数据