我试图将变量“ email”从我看来的“注册”方法传递给“字符”方法。然而,
request.args.get('email')
正在将NULL保存到数据库中。我不知道为什么。
这是将’email’变量传递给’/ character’之后显示的内容:
http://127.0.0.1:5000/character?email=test%40test.com
这是我在“ views.py”中的代码:
@app.route('/signup', methods=['GET','POST'])
def signup():
if request.method == 'GET':
return render_template('signup.html')
email = request.form['email']
return redirect(url_for('character', email=email))
@app.route('/character', methods=['GET', 'POST'])
def character():
if request.method == 'GET':
return render_template('character.html')
email = request.args.get('email')
password = request.form['password']
name = request.form['username']
temp = model.Actor(request.form['gender'], request.form['height'], request.form['weight'], request.form['physique'])
user = model.User(name, email, password, temp)
db.session.add(temp)
db.session.add(user)
db.session.commit()
return redirect(url_for('movies'))
其他所有工作都很好,只是“电子邮件”没有保存为“ test@test.com”,而是另存为NULL。
提交注册表单时,你正在使用POST。由于你使用的是POST,因此会将表单值添加到request.form
,而不是request.args
。
你的电子邮件地址将位于:
request.form.get('email')
如果你访问的是URL /characters?email=someemail@test.com
,并且不是立即使用以下方法呈现模板:
if request.method == 'GET':
return render_template('character.html')
在角色视图中,只有这样,你才能访问:
request.args.get('email')
查看werkzeug请求/响应文档以获取更多信息。
编辑:这是一个完整的工作示例(减去模型的内容)
app.py
from flask import request, Flask, render_template, redirect, url_for
app = Flask(__name__)
app.debug = True
@app.route('/signup', methods=['GET','POST'])
def signup():
if request.method == 'GET':
return render_template('signup.html')
email = request.form['email']
return redirect(url_for('character', email=email))
@app.route('/character', methods=['POST', 'GET'])
def character():
email_from_form = request.form.get('email')
email_from_args = request.args.get('email')
return render_template('character.html',
email_from_form=email_from_form,
email_from_args=email_from_args)
if __name__ == '__main__':
app.run()
templates / signup.html
<html>
Email from form: {{ email_from_form }} <br>
Email from args: {{ email_from_args }}
</html>
templates / character.html
<html>
<form name="test" action="/character" method="post">
<label>Email</label>
<input type="text" name="email" value="test@email.com" />
<input type="submit" />
</form>
</html>
提交登录表单(通过POST)将被填充 Email from form
到达网址http://localhost:5000/character?email=test@email.com(通过GET)将被填充Email from args
下面是我的2个实体: 我想创建用户- {“street”:“Ulicanew”,“house”:“5”,“flat”:“2”,“code”:“20-001”,“city”:“warsaw”,“user_id”:1} 我的地址表中的用户id为空: 为什么地址表中的外键总是空的?你知道这是怎么回事吗?通过直接向db插入sql,一切正常
del key1 key2 ....keyN 返回1表示存在,0不存在
我最近开始研究Hibernate,并在研究映射。在我的场景中,我有一个可以拥有多辆车的用户。在执行双向映射时,在第二个表中生成的列,因为如果使用此双向映射,我将获得空值。我试过调试,但没用。 用户etails.java 交通工具Java语言 冬眠之石。Java语言 输出: 我也发现这有点难以理解为什么我们应该选择双向而不是单向映射。
这是我的蚂蚁叫声
keys *user* keys * 有3个通配符 *, ? ,[] *: 通配任意多个字符 ?: 通配单个字符 []: 通配括号内的某1个字符 注:生产已经禁止。更安全的做法是采用scan,原理和操作如下: 针对Keys的改进,支持分页查询Key。在迭代过程中,Keys有增删时不会要锁定写操作,数据集完整度不做任何保证,同一条key可能会被返回多次. 对于其他危险的命令,新版本也进行了替代:
type key 返回 none 表示不存在key。string字符类型,list 链表类型 set 无序集合类型…