正确的方法来“冒泡”错误,从模型到视图,再到Python Flask框架中的模板
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了正确的方法来“冒泡”错误,从模型到视图,再到Python Flask框架中的模板,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1589字,纯文字阅读大概需要3分钟。
内容图文
![正确的方法来“冒泡”错误,从模型到视图,再到Python Flask框架中的模板](/upload/InfoBanner/zyjiaocheng/675/185190dc4065442f86ba3d4e02bd6063.jpg)
捕获类错误并让错误消息从类“冒泡”到视图并最终显示在模板上的正确方法是什么?
我现在遇到的问题是,我最终在模型和视图控制器中两次捕获相同的错误.这感觉不对.
这是一个例子:
型号/user.py
class User(object):
errors = []
def __init__(self, string=None):
""" Initialize the user object
"""
#See if the input string is an e-mail address
try:
string_is_email = string.index('@')
except ValueError:
self.errors.append('Invalid e-mail address')
raise ValueError
查看/login.py
@app.route('/login', methods=['POST', 'GET'])
def login():
if request.method == 'POST':
email = request.form['email']
password = request.form['password']
#Catch invalid e-mails
try:
u = User(email)
except ValueError:
errors = u.errors
#In case the user hasn't POSTED
try:
errors = u.errors
except:
errors = None
return render_template('login.html', error=errors)
templates / login.html
{% if error %}
<div class="error">
<ul>
{% for message in error %}
<li>{{ message }}</li>
{% endfor %}
</ul>
</div>
有没有更清洁的方法可以做到这一点?
解决方法:
您可以直接将消息发送到带有flash的模板,而不用进行错误修复,此外,我将对其进行一些修改:
class User(object):
def __init__(self, string):
""" Initialize the user object
"""
#See if the input string is an e-mail address
try:
string_is_email = string.index('@')
except ValueError:
raise ValueError('Invalid e-mail address')
@app.route('/login', methods=['POST', 'GET'])
def login():
if request.method == 'POST':
email = request.form['email']
password = request.form['password']
#Catch invalid e-mails
try:
u = User(email)
except ValueError, e:
flash(e.message)
有关如何使用Flash的信息,请参阅文档:http://flask.pocoo.org/docs/patterns/flashing/.
内容总结
以上是互联网集市为您收集整理的正确的方法来“冒泡”错误,从模型到视图,再到Python Flask框架中的模板全部内容,希望文章能够帮你解决正确的方法来“冒泡”错误,从模型到视图,再到Python Flask框架中的模板所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。