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