zoukankan      html  css  js  c++  java
  • 用flask实现一个用户登录的功能

    #!/usr/bin/python
    #coding=utf-8
    
    from flask import Flask,session,redirect,url_for,request
    
    app=Flask(__name__)
    app.secret_key='xf1x92Yxdfx8ejYx04x96xb4Vx88xfbxfcxb5x18Fxa3xeexb9xb9tx01xf0x96'    #配置secret_key,否则不能实现session对话
    # or
    # app.config['SECRET_KEY'] = 'xcax0cx86x04x98@x02bx1b7x8cx88]x1bxd7"+xe6px@xc3#\'
    # or
    # app.config.update(SECRET_KEY='xcax0cx86x04x98@x02bx1b7x8cx88]x1bxd7"+xe6px@xc3#\')
    
    @app.route("/")
    def index():
        if session.get('username')=='shiyanlou' and session.get('password')=='shiyanlou':
            return "hello shiyanlou"
        return "you are not logged in"
    
    @app.route("/login",methods=["POST","GET"])
    def login():
        if request.method=='POST':
            session['username']=request.form['username']
            session['password']=request.form['password']
            print '>>>>>>>>>>>>>>>>>>>>>'
            print session
            return redirect(url_for('index'))
        return """
        <form action="" method="post">
            <p><input type=text name=username>
            <p><input type=text name=password>
            <p><input type=submit value=Login>
        </form>
        """
    
    @app.route("/logout")
    def logout():
        session.pop('username',None)
        session.pop('password',None)
        return redirect(url_for('index'))
    
    if __name__=="__main__":
        app.run(host='0.0.0.0',debug=True,port = 8017)  

    以上代码来源:https://www.douban.com/note/511577488/

    Flask生成SECRET_KEY(密钥)的一种简单方法:
    原文:http://flask123.sinaapp.com/article/41/

    SECRET_KEY是Flask中比较重要的一个配置值。本文介绍一种比较简单的生成SECRET_KEY的方法。

    Session, Cookies以及一些第三方扩展都会用到SECRET_KEY值,这是一个比较重要的配置值,应该尽可能设置为一个很难猜到的值,随机值更佳。

    随机的问题在于很难判断什么是真随机。一个密钥应该足够随机。你的操作系统可以基于一个密码随机生成器来生成漂亮的随机值,这个值可以用来做密钥:

    >>> import os
    >>> os.urandom(24)
    'xcax0cx86x04x98@x02bx1b7x8cx88]x1bxd7"+xe6px@xc3#\'

    把这个值复制粘贴到你的代码,你就搞定了密钥。

    设置方法:

    app = Flask(__name__)
    app.config['SECRET_KEY'] = 'xcax0cx86x04x98@x02bx1b7x8cx88]x1bxd7"+xe6px@xc3#\'
    # or
    app.secret_key = 'xcax0cx86x04x98@x02bx1b7x8cx88]x1bxd7"+xe6px@xc3#\'
    # or
    app.config.update(SECRET_KEY='xcax0cx86x04x98@x02bx1b7x8cx88]x1bxd7"+xe6px@xc3#\')
  • 相关阅读:
    每日英语:AntiJapan Protests Flare in China
    opencv CvMat矩阵学习
    warning C4018有符号无符号不匹配
    每日英语:Relationship Repair: 10 Tips for Thinking Like a Therapist
    结构体数组定义和引用
    每日英语:China's Conflicted Consumers
    一个托盘程序, 简化notifyicon的使用.
    nunit notes from TDD in .net
    一款能拖拉的winform树形控件
    vss 2005 internet visit
  • 原文地址:https://www.cnblogs.com/aiyr/p/7440715.html
Copyright © 2011-2022 走看看