时间:2023-07-05 11:36:01 | 来源:网站运营
时间:2023-07-05 11:36:01 来源:网站运营
使用flask框架制作简单的基于MySQL数据库的搜索网页:本小白一直没学过网页语言,研一才开始接触python,现在导师让制作个简单的网页,我也是用了些时间才搞明白。里面若有问题或错误的,请留言!!!<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>Title</title></head><body><form action="/gets/" method="post"> <p>搜索: <input type="text" name="question"></p> <input type="submit"></form></body></html>
其实我们不太用全懂html语言,只要知道个差不多就行,毕竟不是专门做网页的,能实现我们简单的需求即可。上面这段代码是生成了一个搜索文本框。具体我就不讲了,因为我也不是很清楚哈哈。然后写我们的主程序代码:from flask import Flask,render_template,requestimport pymysqlapp = Flask(__name__)@app.route('/')def index(): return render_template('base.html')if __name__ == '__main__': app.run(debug=True,host='127.0.0.1',port='8080')
这个base.html文件就是刚才我们写的,放在templates文件夹下。运行后就会出现一个网址,点击进入,如图:<!DOCTYPE html><html lang="cn-zh"><head> <meta charset="UTF-8"> <title>搜索结果展示</title></head><body> <center> <form action="/gets/" method="post"> <h1>搜索结果展示</h1> <hr> <table border="1px" width="400px"> <tr style="text-align:center"> <th>id</th> <th>姓名</th> <th>年龄</th> <th>城市</th> </tr> {% for i in items %} <tr style="text-align:center"> <td>{{ i.id }}</td> <td>{{ i.name }}</td> <td>{{ i.age }}</td> <td>{{ i.city }}</td> </tr> {% endfor %} </table> </form> </center></body></html>
这段代码的意思就是将数据库中的信息打印在网页上。此时我的主程序代码加入了另外一个函数:from flask import Flask,render_template,requestimport pymysqlapp = Flask(__name__)@app.route('/')def index(): return render_template('base.html')@app.route('/gets/',methods=['POST'])def search(): conn = pymysql.connect(user='root', host='localhost', passwd='', db='test',cursorclass=pymysql.cursors.DictCursor) cur = conn.cursor() sql = "select * from database1" cur.execute(sql) datas = cur.fetchall() return render_template('search.html',items=datas)if __name__ == '__main__': app.run(debug=True,host='127.0.0.1',port='8080')
多了一个@app.route('/gets/',methods=['POST'])还有下面的search()函数,当然我们还没做到搜索功能,这只是将MySQL数据库中的信息打印在网页上。def search(): conn = pymysql.connect(user='root', host='localhost', passwd='', db='test',cursorclass=pymysql.cursors.DictCursor) cur = conn.cursor() S = request.values.get('question') sql = "select * from database1 where name like '%"+S+"%'" cur.execute(sql) datas = cur.fetchall() return render_template('search.html',items=datas)
上面的search()函数经过了修改,加入了S = request.values.get('question')这行代码,它的功能就是得到输入框的信息,后面的参数‘question’在base.html文件里定义的:关键词:数据,简单,使用