flask开发笔记
1、调试
参考:https://deepinout.com/flask/flask-questions/29_flask_how_to_debug_a_flask_app.html
用pdb感觉还不错
from flask import Flask import pdb app = Flask(__name__) app.debug = True @app.route('/') def hello_world(): name = "Alice" pdb.set_trace() # 添加断点 return 'Hello, {}!'.format(name) if __name__ == '__main__': app.run()
一些常用的 pdb 命令:
h 或 help: 查看帮助信息
n 或 next: 执行下一行代码
s 或 step: 进入函数调用
c 或 continue: 继续执行代码,直到下一个断点或程序结束
p var 或 print(var): 查看变量的值
q 或 quit: 退出调试环境
2、用LDAP认证身份
参考:https://www.likecs.com/show-307207838.html
# 验证用户名以及密码是否正确(单点登录) import ldap AUTH_LDAP_SERVER_URI = "ldap://0.0.0.0:389" # ldap主机 AUTH_LDAP_BIND_DN = "cn=,ou=,dc=,dc=" # 根据自己实际需求填写 AUTH_LDAP_BIND_PASSWORD = "" # 管理账户密码 SEARCH_BASE = "OU=,DC=,DC=" def ldapAuth(username, password): try: # 建立连接 ldapconn = ldap.initialize(AUTH_LDAP_SERVER_URI) # 绑定管理账户,用于用户的认证 ldapconn.simple_bind_s(AUTH_LDAP_BIND_DN, AUTH_LDAP_BIND_PASSWORD) searchScope = ldap.SCOPE_SUBTREE # 指定搜索范围 searchFilter = "(sAMAccountName=%s)" % username # 指定搜索字段 ldap_result = ldapconn.search_s(SEARCH_BASE, searchScope, searchFilter, None) # 返回该用户的所有信息,类型列表 if ldap_result: user_dn = ldap_result[0][0] # 获取用户的cn,ou,dc try: ldapconn.simple_bind_s(user_dn, password) # 对用户的密码进行验证 print("验证成功") return True except ldap.LDAPError as e: print(e) return False else: return False except ldap.LDAPError as e: print(e) return False # r = ldapconn.simple_bind_s(ldap_result[0]["distinguishedName"][0].decode("utf-8"), password) # 验证用户的账号和密码 # print(r) # if ldap_result: # print(ldap_result) # result_data = ldapconn.result(ldap_result, 1) # 获取需要认证用户的dn # print(result_data) # if len(result_data): # _, r_b = result_data[0] # r = ldapconn.simple_bind_s(r_b["distinguishedName"][0].decode("utf-8"), password) # 验证用户的账号和密码 # print(r) # else: # return False if __name__ == '__main__': print(ldapAuth(用户名,密码))
3、Flask配合的jinja模板语法
https://jinja.palletsprojects.com/en/3.1.x/templates/
4、
待补充