class dataswitch():'''資料交換
'''def
__init__(self
, server, port, user, password, db_name, autocommit=false):
self.conn = psycopg2.connect(host=server,
port=port,
user=user,
password=password,
database=db_name)
self.cursor = self.conn.cursor(cursor_factory=psycopg2.extras.dictcursor)
self.conn.autocommit = autocommit
def
__del__(self):
if (self.cursor != none):
self.cursor.close()
if (self.conn != none):
self.conn.close()
def
get_user_info(self
, user, passwd):
'''獲取使用者資訊
返回值: 失敗返回none, 成功返回字典型使用者資訊
'''sql = "select
*from user_info where username =%s and password =%s"
self.cursor.execute(sql, (user, passwd))
dict_user_info = self.cursor.fetchone()
if dict_user_info == none:
return
none
dict_return = {}
for ele in ["username"
, "access_key"
, "secret_key"
, "registerdate"
, "idcard"]:
if dict_user_info.has_key(ele):
if type(dict_user_info[ele]) == datetime.date:
dict_user_info[ele] = str(dict_user_info[ele])
dict_return[ele] = dict_user_info[ele]
else:
dict_return[ele] = none
return dict_return
__author__ = 'keeper_zdl'
def
allow_cross_domain(fun):
@wraps(fun)
def
rst = make_response(fun(*args, **kwargs))
rst.headers['access-control-allow-origin'] = '*'
rst.headers['access-control-allow-methods'] = 'put,get,post,delete'
allow_headers = "referer,accept,origin,user-agent"
rst.headers['access-control-allow-headers'] = allow_headers
return rst
'''函式功能: 獲取使用者基本資訊
輸入引數: username,password
返回值: 使用者基本資訊
''',
methods=['post'])
@allow_cross_domain
def
login():
try:
username = request.form['username']
password = request.form['password']
except
exception
, e:
return jsonify(success=false
, error=error_msg_miss_param)
handle = dataswitch(db_hostname, db_port, db_user, db_password, db_name)
dict_user_info = handle.get_user_info(username, password)
if dict_user_info == none:
return jsonify(success=false
, error=error_msg_invalid_user_passwd,
username=username)
return jsonify(success=true
, error=""
, **dict_user_info)
if __name__ == '__main__':
,80)
Flask 登入練習
使用藍圖並用cbv模式完成登入功能 登入成功後跳轉到首頁 將session儲存在liunx上的redis資料庫 使用before request驗證是否是登陸使用者 from flask import blueprint,render template,redirect,views,request,...
實現登入 Flask 實現登入功能
在大多數人學習 web 開發的路線圖中,登入功能往往是我們接觸到的第乙個功能,本文對 flask 實現登入功能做乙個簡單的介紹。需求的分析往往是實現的第一步,在對 flask 的登入功能進行編碼 demo 之前,有必要先介紹一下登入模組的功能列表和基本流程。乙個登入功能主要要實現如下幾個基本的功能點...
Flask使用者登入flask login
flask login登入的並保持狀態 注 session 防護 session 資訊一般存放在 cookie 中,但是 cookie 不夠安全,容易被竊取其中 session 資訊,偽造使用者登入系統,幸運的是 flask login 提供了 session 防護機制,提供有 basic 和 st...