用flask开发个人博客(17)—— Flash消息

        当我们登录摸一个网站时,输入用户名和密码,如果密码输入错误,点击确定按钮后经常会出现一条提示密码错误的消息。这个消息就是flash消息,主要用来提示用户当前操作的结果。flask中也有自己的flash消息,本文主要介绍flask中flash消息的用法。

       首先,我们要先编写用户显示flash消息的html文件,为了简单演示,我们直接把放到html中,不再添加其他效果。flask开放了get_flashed_messages函数给模板使用,所谓开发就是我们可以在模板中直接使用,而不用import。

<form method="POST">  
    {{form.hidden_tag()}}  
    <p>{{form.name.label}}</p>
    {{form.name()}}  
    <br>{{form.submit }}  
</form>  
<h6>flashed message</h6>
 <p>
    {% for message in get_flashed_messages() %}
    	{{ message }}
    {% endfor %} 
    </p>
        接下来,我们看下视图函数的处理过程。视图函数中,通过session获取name字段的数值,如果我们两次提交的数值不一致,就是flash一个name has been changed的消息:

@app.route('/',methods=['GET','POST'])
def index():
    form = NameForm()
    if form.validate_on_submit():
        old_name=session.get('name')
        if old_name is not None and old_name != form.name.data:
            flash('name has been changed')
            return redirect(url_for('index'))
        session['name']=form.name.data
        return render_template('index.html',form=form)
    return render_template('index.html',form=form)
        我们看下最终的实现效果:




Github位置:
https://github.com/HymanLiuTS/flaskTs

克隆本项目:
git clone git@github.com:HymanLiuTS/flaskTs.git
获取本文源代码:
git checkout FL17


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flask 是一个轻量级的 Python Web 架,非常适合用来建立个人博客。以下是用 Flask 建立个人博客的简单步骤: 1. 安装 Flask 和其他必需的依赖库 可以使用 pip 安装 Flask 和其他必需的依赖库,例如 Flask-WTF、Flask-Login、Flask-Migrate 等。 2. 创建 Flask 应用程序 可以在 Python 脚本创建 Flask 应用程序,例如: ``` from flask import Flask app = Flask(__name__) @app.route('/') def index(): return 'Hello, World!' if __name__ == '__main__': app.run() ``` 3. 创建数据库模型 可以使用 SQLAlchemy 创建数据库模型,例如: ``` from flask_sqlalchemy import SQLAlchemy db = SQLAlchemy() class User(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(20), unique=True, nullable=False) email = db.Column(db.String(120), unique=True, nullable=False) password = db.Column(db.String(60), nullable=False) def __repr__(self): return f"User('{self.username}', '{self.email}')" ``` 4. 创建表单和视图函数 可以使用 Flask-WTF 创建表单,使用视图函数处理表单提交和页面渲染,例如: ``` from flask_wtf import FlaskForm from wtforms import StringField, PasswordField, SubmitField from wtforms.validators import DataRequired, Email, EqualTo, Length class RegistrationForm(FlaskForm): username = StringField('Username', validators=[DataRequired(), Length(min=2, max=20)]) email = StringField('Email', validators=[DataRequired(), Email()]) password = PasswordField('Password', validators=[DataRequired()]) confirm_password = PasswordField('Confirm Password', validators=[DataRequired(), EqualTo('password')]) submit = SubmitField('Sign Up') @app.route('/register', methods=['GET', 'POST']) def register(): form = RegistrationForm() if form.validate_on_submit(): user = User(username=form.username.data, email=form.email.data, password=form.password.data) db.session.add(user) db.session.commit() flash('Your account has been created!', 'success') return redirect(url_for('login')) return render_template('register.html', title='Register', form=form) ``` 5. 创建模板 可以使用 Jinja2 模板引擎创建模板,例如: ``` <!DOCTYPE html> <html> <head> <title>{{ title }}</title> </head> <body> {% with messages = get_flashed_messages() %} {% if messages %} {% for message in messages %} <div>{{ message }}</div> {% endfor %} {% endif %} {% endwith %} <form method="POST"> {{ form.hidden_tag() }} <p> {{ form.username.label }}<br> {{ form.username() }} </p> <p> {{ form.email.label }}<br> {{ form.email() }} </p> <p> {{ form.password.label }}<br> {{ form.password() }} </p> <p> {{ form.confirm_password.label }}<br> {{ form.confirm_password() }} </p> <p>{{ form.submit() }}</p> </form> </body> </html> ``` 6. 部署应用程序 可以使用 gunicorn 或 uwsgi 等工具部署 Flask 应用程序到服务器上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值