python flask前后端交互問題
問題描述
我想下面的id等于上面的user.id但是不知道怎么獲取這個值
問題解答
回答1:謝邀。直接用視圖函數(shù)的參數(shù)就好了。
http://flask.pocoo.org/docs/0...
回答2:謝邀,這里提供一種思路,使用flask_wtf來進行前后端表單交互,入門可以看http://flask123.sinaapp.com/a...
這里舉一個簡單的登陸例子:首先要在后端構造表單,在forms.py中進行定義:
from flask_wtf import Formfrom wtforms import StringField, PasswordField, BooleanField, SubmitFieldfrom wtforms.validators import Required, Length, Email, Regexp, EqualTo#自定義的表單都要繼承于flask_wtf中的Form表單class LoginForm(Form): email = StringField(’登陸郵箱’, validators=[Required(), Length(1, 64), Email()]) password = PasswordField(’密碼’, validators=[Required()]) remember_me = BooleanField(’記住我’) submit = SubmitField(’登陸’)
那么如何把這個表單放到網(wǎng)頁上呢?我們先來看login.html吧:
{% extends 'base.html' %}<!-- 注意這里要導入bootstrap/wtf.html -->{% import 'bootstrap/wtf.html' as wtf %}{% set active_page = 'login' %}{% block title %}登陸{% endblock %}{% block page_content %}<p class='container'> <p style='margin-top: 120px;'><h1 class='white'>登陸</h1> </p> <p > <!-- 這里使用wtf.quick_form即可創(chuàng)建表單,那么form哪里來呢?看下面 -->{{ wtf.quick_form(form) }}<br><p>忘記密碼? <a href='http://www.4tl426be.cn/wenda/{{ url_for(’auth.password_reset_request’) }}'>重置密碼。</a></p><p>沒有賬號? <a href='http://www.4tl426be.cn/wenda/{{ url_for(’auth.register’) }}'>注冊。</a></p> </p></p>{% endblock %}
那么login.html中的form是哪里來的呢?讓我們來看路由views.py
from flask import render_template, redirect, request, url_for, flashfrom .forms import LoginFormfrom ..models import User@auth.route(’/login’, methods=[’GET’, ’POST’])def login(): #從forms.py中導入剛剛建好的 LoginForm() form = LoginForm() #【你要的答案在這里,當用戶提交表單后會執(zhí)行下列語句】 if form.validate_on_submit():#用form.xxx.data即可獲取數(shù)據(jù),這里使用了form.email.data獲取了用戶輸入的email進行查詢user = User.query.filter_by(email=form.email.data).first()#如果查詢到用戶并且密碼正確的話if user is not None and user.verify_password(form.password.data): #登陸用戶,并重定向到之前的頁面或主頁 login_user(user, form.remember_me.data) return redirect(request.args.get(’next’) or url_for(’main.index’))#否則提示用戶用戶名不對或密碼不對flash(’Invalid username or password.’) #!!!這里要注意,第一次用戶開進這個登陸界面的時候是直接執(zhí)行下面這條語句的,要注意把form傳入,jinja2才可以對表單進行渲染。 return render_template(’auth/login.html’, form=form)
同樣還是《Flask Web開發(fā):基于Python的Web應用開發(fā)實戰(zhàn)》這本書里的內容,今天又復習了一下~哈哈,所以樓主想學Flask的話還是推薦看看這本書哦~ 有什么問題也歡迎繼續(xù)提問,謝謝~~
回答3:使用request上下文
from flask import request# ...user = User.query.filter_by(User.id==request.args.get(’id’, 0))
相關文章:
1. python - [已解決]flask QQ郵箱mail2. html - eclipse 標簽錯誤3. 主題切換問題,用過別人的webapp在后臺切換模板主題后手機端打開網(wǎng)頁就是切換到的主題了4. javascript - 小程序中遇到js執(zhí)行時序問題5. mysql 5個left關鍵 然后再用搜索條件 幾千條數(shù)據(jù)就會卡,如何解決呢6. 按照本節(jié)給的代碼“膽小如鼠”并不能變成紅色7. mysql - 在不允許改動數(shù)據(jù)表的情況下,如何優(yōu)化以varchar格式存儲的時間的比較?8. python3.x - git bash如何運行.bat文件?9. javascript - 為什么在谷歌控制臺 輸出1的時候,輸出的1立馬就不見了10. javascript - position fixed;設置了height 100 卻不是瀏覽器可視窗口的寬高,求大神釋疑。
