当前位置: 首页 > news >正文

Flask学习笔记(2)-login_page

Flask学习笔记(2)-login_page

命令行

1.cd mysite进入mysite目录。
2.git log查看git记录后按Q退出。

Code for login_page

@app.route("/login/", methods=["GET", "POST"]) 
def login():
    if request.method == "GET":
        return render_template("login_page.html", error=False)

    if request.form["username"] != "admin" or request.form["password"] != "secret":
        return render_template("login_page.html", error=True)

    return redirect(url_for('index'))

methods有post和get两种方式,post输入框后:

  • 当密码错误,error = False,显示错误提示(下文);
  • 密码正确,get到index。

在login_page里添加以下判断,当输错密码时,将显示Incorrect username or password

{% if error %}
    <div class="alert alert-warning" role="alert">
        Incorrect username or password
    </div>
{% endif %}

flask_login包

提供非常方便的login函数。以下语句创建flask_login实例,并和app关联起来。

from flask_login import login_user, LoginManager, UserMixin

app.secret_key = "something only you know"
login_manager = LoginManager()
login_manager.init_app(app)

{% if current_user.is_authenticated %} {% endif %}将评论输入框包起来,这样,未登录就看不到输入框。但实际上这仍然不完善,提交评论的时候并不会判断登录状态。用爬虫的post方法还是可以直接向网页添加评论,安全等级非常低。解决方法是在get到输入框内容前加上下面这段:

if not current_user.is_authenticated:
    return redirect(url_for('index'))

一些常用方法
current_user判断是否登录;
logout_user退出登录;
login_required登陆后可见;

转载于:https://www.cnblogs.com/aubucuo/p/flask2.html

相关文章:

  • shell安全防范———慎将当前目录.加入PATH~~~之~隔壁老王来敲门
  • Java:泛型
  • Myth源码解析系列之一-项目简介
  • 在地铁上看了zabbix 的书发现 报警执行远程命令
  • Python中级 —— 01面向对象进阶
  • Ansible批量修改root密码(playbook)
  • 健忘?科学家想用机器学习+电击实验,帮你增强记忆力
  • mysql 设置自增id起始值
  • 多迪技术总监告诉你为什么人工智能用Python?
  • python之路----面向对象的封装特性
  • DAY9-字符串笔记整理2018-1-19
  • 新建一个虚拟机
  • Android layer-list的属性和使用具体解释
  • 安全地关闭 jvm(tomcat停止钩子事件处理)
  • 智慧医疗“验血查癌”或会实现
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • AHK 中 = 和 == 等比较运算符的用法
  • axios请求、和返回数据拦截,统一请求报错提示_012
  • Git同步原始仓库到Fork仓库中
  • HTTP那些事
  • JS基础篇--通过JS生成由字母与数字组合的随机字符串
  • Laravel Mix运行时关于es2015报错解决方案
  • linux安装openssl、swoole等扩展的具体步骤
  • Mysql5.6主从复制
  • React 快速上手 - 07 前端路由 react-router
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • 搞机器学习要哪些技能
  • 近期前端发展计划
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 一、python与pycharm的安装
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • ​水经微图Web1.5.0版即将上线
  • #if和#ifdef区别
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (转)从零实现3D图像引擎:(8)参数化直线与3D平面函数库
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式
  • .NET单元测试
  • .NET下的多线程编程—1-线程机制概述
  • @angular/cli项目构建--Dynamic.Form
  • @RestControllerAdvice异常统一处理类失效原因
  • [20150629]简单的加密连接.txt
  • [BT]BUUCTF刷题第4天(3.22)
  • [BZOJ3757] 苹果树
  • [C#] 如何调用Python脚本程序
  • [delphi]保证程序只运行一个实例
  • [Editor]Unity Editor类常用方法
  • [flume$2]记录一个写自定义Flume拦截器遇到的错误
  • [Flutter]打包IPA