我就直接說我是怎么做的吧,首先" />

国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

15158846557 在線咨詢 在線咨詢
15158846557 在線咨詢
所在位置: 首頁 > 營銷資訊 > 網(wǎng)站運(yùn)營 > 使用flask框架制作簡單的基于MySQL數(shù)據(jù)庫的搜索網(wǎng)頁

使用flask框架制作簡單的基于MySQL數(shù)據(jù)庫的搜索網(wǎng)頁

時(shí)間:2023-07-05 11:36:01 | 來源:網(wǎng)站運(yùn)營

時(shí)間:2023-07-05 11:36:01 來源:網(wǎng)站運(yùn)營

使用flask框架制作簡單的基于MySQL數(shù)據(jù)庫的搜索網(wǎng)頁:本小白一直沒學(xué)過網(wǎng)頁語言,研一才開始接觸python,現(xiàn)在導(dǎo)師讓制作個(gè)簡單的網(wǎng)頁,我也是用了些時(shí)間才搞明白。里面若有問題或錯(cuò)誤的,請留言?。?!

我就直接說我是怎么做的吧,首先是創(chuàng)建文件夾,把你需要做的網(wǎng)頁文件都放在一個(gè)文件夾里。文件夾的大致內(nèi)容如下。

就這三個(gè)東東,因?yàn)槲覀冏龅木W(wǎng)頁非常簡單,所以不需要那么多的花里胡哨。static文件夾里面是存放圖片用的,templates文件夾是用來存放HTML文件的。web.py就是主程序。我們先來寫一個(gè)簡單的搜索網(wǎng)頁。其中html文件的內(nèi)容如下:

<!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>其實(shí)我們不太用全懂html語言,只要知道個(gè)差不多就行,畢竟不是專門做網(wǎng)頁的,能實(shí)現(xiàn)我們簡單的需求即可。上面這段代碼是生成了一個(gè)搜索文本框。具體我就不講了,因?yàn)槲乙膊皇呛芮宄?。然后寫我們的主程序代碼:

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')這個(gè)base.html文件就是剛才我們寫的,放在templates文件夾下。運(yùn)行后就會出現(xiàn)一個(gè)網(wǎng)址,點(diǎn)擊進(jìn)入,如圖:

其實(shí)到這一步很簡單,可是我到這一步都花了半天時(shí)間。然后又開始琢磨如何連接MySQL數(shù)據(jù)庫,又是過了兩天......著實(shí)菜......

flask連接數(shù)據(jù)庫很簡單,就和python連接數(shù)據(jù)庫是一樣的,不用額外亂七八糟什么的,我們需要做的就是如何將讀取出來的數(shù)據(jù)展示在網(wǎng)頁上。那么我們就需要做兩件事,html語言如何獲取這些變量值,python如何將這些變量值傳入html文件。先看另一個(gè)html文件,代碼如下:

<!DOCTYPE html><html lang="cn-zh"><head> <meta charset="UTF-8"> <title>搜索結(jié)果展示</title></head><body> <center> <form action="/gets/" method="post"> <h1>搜索結(jié)果展示</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>這段代碼的意思就是將數(shù)據(jù)庫中的信息打印在網(wǎng)頁上。此時(shí)我的主程序代碼加入了另外一個(gè)函數(shù):

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')多了一個(gè)@app.route('/gets/',methods=['POST'])還有下面的search()函數(shù),當(dāng)然我們還沒做到搜索功能,這只是將MySQL數(shù)據(jù)庫中的信息打印在網(wǎng)頁上。

@app.route('/gets/',methods=['POST'])這一行是怎么寫出來的呢,這個(gè)gets是base.html文件里定義的,

這大概意思應(yīng)該就是gets得到響應(yīng)后,才執(zhí)行search()函數(shù)。

數(shù)據(jù)庫連接的時(shí)候,記住一定要寫上cursorclass=pymysql.cursors.DictCursor) 不然網(wǎng)頁顯示不出來我們的數(shù)據(jù),我在這搞了半天。哎。

下面的語句應(yīng)該不用解釋了,最后返回的是search.html剛才的搜索結(jié)果頁面,還有需要顯示出來的datas,這里的items是search.html文件里定義的,

for i in items 很明顯就是遍歷我們得到的數(shù)據(jù)了?,F(xiàn)在再次運(yùn)行我們的主程序,一開始頁面就是我們第一次的頁面,然后點(diǎn)擊搜索,就會出現(xiàn)如下:

好了,到這我們基本知道了如何將數(shù)據(jù)庫的信息展示到網(wǎng)頁上了。那么搜索功能的話就是讓它刪選出符合條件的數(shù)據(jù)。比如,我想刪選出姓名中含有“江”字的數(shù)據(jù),那就應(yīng)該在search()函數(shù)中加入刪選條件,如下

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()函數(shù)經(jīng)過了修改,加入了S = request.values.get('question')這行代碼,它的功能就是得到輸入框的信息,后面的參數(shù)‘question’在base.html文件里定義的:

sql語句的意思就是將包含輸入框信息S的內(nèi)容找出來。其他地方?jīng)]改。此時(shí)我們再次運(yùn)行,并在輸入框中輸入‘江’,然后回車,看到如下結(jié)果:

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

至于什么全文搜素啊,我也沒看,畢竟也用不到那么復(fù)雜的,如果以后接觸了再寫。

雖然很簡單吧,但自己以前沒接觸過,開始著實(shí)讓人頭疼。希望別人走的彎路少些。自己也記得勞些。

關(guān)鍵詞:數(shù)據(jù),簡單,使用

74
73
25
news

版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點(diǎn)擊下載Chrome瀏覽器
關(guān)閉