9394952

导航

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、

待补充

posted on 2023-08-17 11:01  9394952  阅读(14)  评论(0编辑  收藏  举报