首页 > 技术文章 > python的flask框架下从web输入信息,将其存入数据库,然后调用数据库,将其显示到web页面

qingnvsue 2020-05-31 17:40 原文

数据库如图

 

 我们在web输入一行信息,如图

 

 插入数据库,如图

 

 可以看到,这行信息已经插入了,然后我们将新插入的这行信息显示到web页面

 

 整个流程就是这样,代码如下:

sqlinputweb.py

from flask import Flask, render_template, request
import pymysql
app = Flask(__name__)

class DataStore():
    a = None
data = DataStore()

@app.route('/', methods=['GET'])
def home():
    return render_template('index2.html')


@app.route('/', methods=['POST'])
def add():
    id = request.form['id']
    data.a = id
    name = request.form['name']
    age = request.form['age']
    sex= request.form['sex']
    try:
        id= float(id)
        age = float(age)
        conn = pymysql.connect(host='39.106.168.84', user='xxxxxx', password='xxxxxxx', port=3306,
                               db='xxxxx')
        cur = conn.cursor()  # 生成游标对象
        sql = "INSERT INTO `student`(`id`, `name`, `age`, `sex`) VALUES (%s,%s,%s,%s)",(id, name, age, sex)
        try:
            # 执行sql语句
            cur.execute(*sql)
            # 提交到数据库执行
            conn.commit()
        except:
            # 如果发生错误则回滚
            conn.rollback()

        sql = "SELECT * FROM `student` WHERE `id` = %s" % data.a
        cur.execute(sql)
        u = cur.fetchall()
        conn.close()
        return render_template('index3.html', u=u)
        conn.close()
    except:
        return render_template('index2.html', message='inputs false!!!', var1=id, var2=name, var3=age, var4=sex)


if __name__ == '__main__':
    app.run(port=8002)

index2.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>sql测试</title>
</head>
<body>
<div align="center" style="margin-top: 40px;">
    <form name="form1"     method="POST">
        id =<input type="text" placeholder="id" name="id" value="{{ var1  }}">
        name=<input type="text" placeholder="name" name="name" value="{{ var2  }}">
        age=<input type="text" placeholder="age" name="age" value="{{ var3  }}">
        sex=<input type="text" placeholder="sex" name="sex" value="{{ var4  }}">
        <input type="submit" value="提交" οnclick="">
    </form>

</div>
{% if message %}
    <p style="color:red">{{ message }}</p>
    {% endif %}
</body>

index3.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

    <table class="table table-bordered">
    <tr>
        <th>id</th>
        <th>name</th>
        <th>age</th>
        <th>sex</th>

    </tr>
        {% for i in u %}
            <tr>
                <td>{{ i[0] }}</td>
                <td>{{ i[1] }}</td>
                <td>{{ i[2] }}</td>
                <td>{{ i[3] }}</td>

            </tr>
        {% endfor %}
    </table>

</body>
</html>

代码详见git的https://github.com/qingnvsue/flask 中的sql文件夹

推荐阅读