15158846557 在线咨询 在线咨询
15158846557 在线咨询
所在位置: 首页 > 营销资讯 > 网站运营 > 使用flask框架制作简单的基于MySQL数据库的搜索网页

使用flask框架制作简单的基于MySQL数据库的搜索网页

时间:2023-07-05 11:36:01 | 来源:网站运营

时间:2023-07-05 11:36:01 来源:网站运营

使用flask框架制作简单的基于MySQL数据库的搜索网页:本小白一直没学过网页语言,研一才开始接触python,现在导师让制作个简单的网页,我也是用了些时间才搞明白。里面若有问题或错误的,请留言!!!

我就直接说我是怎么做的吧,首先是创建文件夹,把你需要做的网页文件都放在一个文件夹里。文件夹的大致内容如下。

就这三个东东,因为我们做的网页非常简单,所以不需要那么多的花里胡哨。static文件夹里面是存放图片用的,templates文件夹是用来存放HTML文件的。web.py就是主程序。我们先来写一个简单的搜索网页。其中html文件的内容如下:

<!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文件夹下。运行后就会出现一个网址,点击进入,如图:

其实到这一步很简单,可是我到这一步都花了半天时间。然后又开始琢磨如何连接MySQL数据库,又是过了两天......着实菜......

flask连接数据库很简单,就和python连接数据库是一样的,不用额外乱七八糟什么的,我们需要做的就是如何将读取出来的数据展示在网页上。那么我们就需要做两件事,html语言如何获取这些变量值,python如何将这些变量值传入html文件。先看另一个html文件,代码如下:

<!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数据库中的信息打印在网页上。

@app.route('/gets/',methods=['POST'])这一行是怎么写出来的呢,这个gets是base.html文件里定义的,

这大概意思应该就是gets得到响应后,才执行search()函数。

数据库连接的时候,记住一定要写上cursorclass=pymysql.cursors.DictCursor) 不然网页显示不出来我们的数据,我在这搞了半天。哎。

下面的语句应该不用解释了,最后返回的是search.html刚才的搜索结果页面,还有需要显示出来的datas,这里的items是search.html文件里定义的,

for i in items 很明显就是遍历我们得到的数据了。现在再次运行我们的主程序,一开始页面就是我们第一次的页面,然后点击搜索,就会出现如下:

好了,到这我们基本知道了如何将数据库的信息展示到网页上了。那么搜索功能的话就是让它删选出符合条件的数据。比如,我想删选出姓名中含有“江”字的数据,那就应该在search()函数中加入删选条件,如下

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文件里定义的:

sql语句的意思就是将包含输入框信息S的内容找出来。其他地方没改。此时我们再次运行,并在输入框中输入‘江’,然后回车,看到如下结果:

把姓名中包含‘江’字的全都找出来了。哈哈哈。

至于什么全文搜素啊,我也没看,毕竟也用不到那么复杂的,如果以后接触了再写。

虽然很简单吧,但自己以前没接触过,开始着实让人头疼。希望别人走的弯路少些。自己也记得劳些。

关键词:数据,简单,使用

74
73
25
news

版权所有© 亿企邦 1997-2025 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭