1.app.py文件里的路由
1 #獲取mysql里面的數據,展示在個人用戶界面 2 @app.route('/personal_info', methods=['GET', 'POST']) 3 def personal_info(): 4 # 獲取登錄路由定義的user值 5 user = session.get('user') 6 7 # 連接數據庫 8 conn = pymysql.connect(host='192.168.0.6', user='root', password='123', db='database1', charset='utf8') 9 10 # 拿到游標 11 cursor = conn.cursor() 12 13 # 執行sql語句 14 sql = 'SELECT * FROM userinfo where username="%s"' % (str(user)) 15 cursor.execute(sql) 16 u = cursor.fetchall() 17 18 # 數據庫和游標關閉 19 cursor.close() 20 conn.close() 21 22 #如果沒有登錄,就獲取不到最上面那個user,就不會執行上面的sql語句,u就沒有得到值 23 #如果u沒有值的話,就賦給u一個元組類型(和數據庫中一樣)的值,其中id只是占了一個位置(數據庫第一列是id,不輸出) 24 if not u : 25 u = ((id,"未登錄,請登錄",),) 26 27 return render_template('personal_info.html', u=u)
2.個人信息(前端)界面
<div class=""> #form表單的地址填寫app.py里面的路由 <form action="/personal_info" class=""> <table> 這是一個for循環,和下面的endfor配套使用,固定格式,輸出u中的值 {% for i in u %} <tr> <td>用戶名:</td> #這里定義一個id是為了下面寫js,把一個超鏈接(HTML的語句)展現在用戶名這個表格里面 <td id="is_login">{{ i[1] }}</td> </tr> <tr> <td>性別:</td> <td>{{ i[5] }}</td> </tr> <tr> <td>出生日期:</td> <td>{{ i[6] }}</td> </tr> <tr> <td>郵箱:</td> <td>{{ i[3] }}</td> </tr> <tr> <td>聯系方式:</td> <td>{{ i[4] }}</td> </tr> {% endfor %} </table> </form> </div> #js,把一個超鏈接(HTML的語句)展現在用戶名這個表格里面 <script> #定義一個變量a接收該id空格的內容,就是{{ i[1] }} a = document.getElementById("is_login").innerHTML // console.log("a=" + a) if(a=="未登錄,請登錄") { document.getElementById("is_login").innerHTML = "未登錄,請<a href='login.html' target='_blank'>登錄</a>"} </script>
3.在其他網頁點擊個人信息按鈕,跳轉到個人信息頁面
#一個例子:本來data-url="personal_info.html",但是這里要登錄上面的路由名稱 <li class="layui-nav-item"> <a href="javascript:;" data-url="/personal_info" data-id="16" data-text="個人信息"><i class="iconfont"></i>個人信息</a> </li>
結束,參考文章https://blog.csdn.net/vitaair/article/details/80220598