国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python的Flask框架中實現登錄用戶的個人資料和頭像的教程

2020-02-23 00:48:21
字體:
來源:轉載
供稿:網友

用戶資料頁面

在用戶資料頁面,基本上沒有什么特別要強調和介紹的新概念。只需要創建一個含有HTML的新視圖函數模板頁面即可。

下面是視圖函數(項目目錄/views.py):
 

@app.route('/user/<nickname>')@login_requireddef user(nickname):  user = User.query.filter_by(nickname = nickname).first()  if user == None:    flash('不存在用戶:' + nickname + '!')    return redirect(url_for('index'))  posts = [    { 'author': user, 'body': 'Test post #1' },    { 'author': user, 'body': 'Test post #2' }  ]  return render_template('user.html',    user = user,    posts = posts)

這里的@app.route標識主要是用來說明此視圖函數不同于之前的那些。我們定義了一個名為<nickname>的參數。在函數里面它會轉化成跟它同名的參數,當用戶有請求的時候,例如這樣的一個URL:URL/user/miguel,次視圖函數就會識別為有一個名為nickname值為'miguel'的參數,即nickname = 'miguel'。


沒必要為此方法的實現過程感到驚訝。首先我們需要通過把轉化后的nickname參數作為條件,嘗試著從數據庫里把此用戶的數據調用出來。如果沒有查詢到數據,我們就像之前那樣,給用戶一個錯誤的提示并且跳轉到主頁去。

一旦我們找到了改用戶,我們就在模板下面來顯示該用戶的文章。要注意下的是在用戶資料頁面我們只讓顯示該用戶的文章,所以文章的作者要是該用戶。

初始化的視圖模板非常的簡單(項目目錄/templates/user.html):
 

<!-- extend base layout -->{% extends "base.html" %} {% block content %}<h1>用戶昵稱: {{user.nickname}}!</h1><hr>{% for post in posts %}<p> {{post.author.nickname}} 發布了: <b>{{post.body}}</b></p>{% endfor %}{% endblock %}

用戶資料頁面就做好了,不過在站點中還沒有指向改頁面的鏈接地址。為了讓用戶很方便的來查看自己的資料信息我們就把鏈接地址放到最上面的導航上去(項目目錄/templates/base.html):


 

<div>Microblog:    <a href="{{ url_for('index') }}">Home</a>    {% if g.user.is_authenticated() %}    | <a href="{{ url_for('user', nickname = g.user.nickname) }}">你的個人資料</a>    | <a href="{{ url_for('logout') }}">退出登陸</a>    {% endif %}  </div>

注意一下我們已經給函數傳參了之后的和之前的URL。

現在就來試一試這個項目。點擊上面的“你的資料”鏈接就會跳轉到用戶資料頁面。由于我們還沒有指向一個隨意用戶資料頁面的鏈接地址,所以在這里如果你想看他人的資料,就需要自己手動輸入一下地址了。比如你想看miguel的資料,那么地址就是:http://localhost:5000/user/miguelt

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 左贡县| 交口县| 大渡口区| 八宿县| 吐鲁番市| 双桥区| 乐都县| 平罗县| 安陆市| 阳山县| 东乌珠穆沁旗| 上饶市| 加查县| 兴山县| 泰和县| 萝北县| 新乐市| 桑植县| 霍州市| 县级市| 无棣县| 灵丘县| 滨州市| 泗水县| 施秉县| 绥芬河市| 察哈| 太原市| 漯河市| 江陵县| 九江市| 运城市| 周至县| 屯昌县| 太保市| 新乡县| 璧山县| 沂源县| 高密市| 吉安县| 奉贤区|