测开之路一百三十六:错误消息闪回提示

错误消息提示:flask.flash

视图

app.secret_key = ‘qoihf2397r21380r2/./ad‘  # 加密的安全码,越复杂越好,flask后台自动进行加密

@app.route(‘/login/‘, methods=[‘GET‘, ‘POST‘])def login():    """ 登录 """    if request.method == ‘POST‘:        username = request.form.get(‘username‘)        password = request.form.get(‘password‘)        sql = ‘select count(*) as [Count] from UserInfo where username = ? and password = ?‘        result = query_sql(sql, (username, password), True)        if int(result.get(‘Count‘)) > 0:            return redirect(url_for(‘list‘))        flash(‘用户名或密码错误‘)    return render_template(‘login.html‘)

login.html

{% extends ‘base.html‘ %}

{% block main_content %}

<!--登录界面--><div class="row">    <div class="col-md-6 col-md-offset-3">        <div class="panel panel-default">            <div class="panel-heading">                <h4>登录</h4>            </div>            <div class="panel-body">                <form action="#" class="form-horizontal" method="post">                    <div class="col-md-10 col-md-offset-1">                        <!--错误消息闪现-->                        {% with messages = get_flashed_messages() %}<!-- 获取flash返回的消息,语法由jinja2提供 -->                            {% if messages %}                                {% for msg in messages %}                                    <div class="alert alert-warning">                                        <a href="#" class="close" data-dismiss="alert">&times;</a>                                        {{ msg }}                                    </div>                                {% endfor %}                            {% endif %}                        {% endwith %}                        <div class="form-group">                            <label for="username" class="col-md-3">用户名:</label>                            <div class="col-md-7">                                <input type="text" class="form-control" name="username" id="username">                            </div>                        </div>                        <div class="form-group">                            <label for="password" class="col-md-3">密码:</label>                            <div class="col-md-7">                                <input type="text" class="form-control" name="password" id="password">                            </div>                        </div>                        <div class="form-group">                            <div class="col-md-10 col-md-offset-3">                                <input type="submit" class="btn btn-primary" value="登录">                            </div>                        </div>                    </div>

                </form>            </div>            <div class="footer">                &copy;版权所有            </div>        </div>    </div></div>

{% endblock %}

登录

原文地址:https://www.cnblogs.com/zhongyehai/p/11462468.html

时间: 2024-10-07 06:59:01

测开之路一百三十六:错误消息闪回提示的相关文章

测开之路一百二十六:flask之获取request请求数据

可以根据flask的request对象获取所有的请求信息 path = request.path # 获取请求地址method = request.method # 获取请求方法ip = request.remote_addr # 请求来源的ipform = request.form # 获取form表单的数据value = request.values # 获取查询字符串/表单数据headers = request.headers # 后区头部信息User_Agent = request.he

测开之路一百三十八:会话管理之session

session管理和使用,需要用到flask的session模块和设置安全码:app.secret_key 比如列表页和编辑功能只能给admin用 列表页 编辑页 添加session 登录成功时,把username添加到session里面 app.secret_key = 'qoihf2397r21380r2/./ad' # 加密的安全码,越复杂越好,flask后台自动进行加密 @app.route('/login/', methods=['GET', 'POST'])def login():

测开之路一百五十二:基于jquery的ajax实现(load、get、ajax)

ajax除了用原生的js实现之外,也可以使用jquery实现,而且用jquery更方便 看一个简单的示例,保留上一篇的content路由和html,实现上一篇一样的功能,点击获取内容,局部刷新 准备一个页面用于被调用 <h1>这是content.html的h1标签</h1><p style="background: red"> 这是content.html的p标签,红色 <a href="https://www.baidu.com/&

测开之路一百二十五:flask之urlencode参数传递和解析

当get请求传参时,用?分隔参数和域名,用&分隔参数,如果参数里面本身就有&符号就会识别不出来,还是会当成分隔符,所以这些数据在传输的时候,就需要转义,现在普遍是转成urlencode编码:%20%xx%23 在jinja2模板里面,可以使用 data|urlencode 发送urlencode编码,而python里面又有urllib.parse.unquote()可以解析urlencode编码 视图函数 html:访问"/"返回html,在html上面点击超链接时请求

测开之路一百二十九:jinja2模板语法

flask用的是jinja2模板,有自己特定的语法 形参: 在html里面留占位参数: {{ 参数名 }},后端传值时,参数名=参数值 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>b页面</title></head><body> <h1>{{ user }},你好<

测开之路一百三十七:实现图片上传和查询渲染功能

两种办法: 1.把接收的图片存到工程的某一文件夹下,数据库的img字段下存对应的路径,要用的时候根据路径去找图片 2.把接收的图片转成二进制存到img字段下,要用的时候再把二进制转回图片 这里采用第一种: 必须的元素 <form action="/post_feedback/" enctype="multipart/form-data" method="POST" class="form-horizontal">&

测开之路一百五十五:jquery-validation前台数据验证

前面做的wtform验证是服务器端的验证,需要把数据传输到服务器,服务器验证后再吧结果传输到前端,网络慢的时候,用户体验不好,所以需要前端验证,且后端验证不能少 传统的js或者jquery如果要验证信息,需要把一个个元素下的信息拿下来,再验证,而validation可以根据元素定位,可以直接就验证了 validation官网:https://jqueryvalidation.org/cnd引用地址:https://www.bootcdn.cn/jquery-validate/引用标签:<scri

测开之路一百零三:jquery元素和标签的插入与删除

标签内插入 标签外插入 给标签加标签 !DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>元素和标签插入</title> <script src="https://cdn.bootcss.com/jquery/2.2.4/jquery.min.js"></script><

测开之路一百零二:jquery元素操作

jquery对元素操作,获取/替换文本(.text()).html(.html()).属性(.attr()).值(.val()) html代码 text() 根据标签获取文本值 同一个标签下筛选明细 最后一个元素 第一个元素 替换文本 html 获取html 替换html <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>