- 博客(54)
- 收藏
- 关注
原创 WhiteNoise的用法
只需几行配置,WhiteNoise 便可让您的 Web 应用提供自己的静态文件,使其成为一个独立的单元,可部署在任何地方,而无需依赖 nginx、Amazon S3 或任何其他外部服务。(在 Heroku、OpenShift 和其他 PaaS 提供商上尤其有用。它旨在与高流量站点的 CDN 完美配合,因此您不必牺牲性能即可享受简单性。WhiteNoise 可与任何兼容 WSGI 的应用程序配合使用,但针对 Django 有一些特殊的自动配置功能。
2025-03-02 18:44:35
279
原创 Django的runserver
set_app执行的是fromwsgiref.simple_serverimportWSGIServer下的方法。serve_forever执行的是fromsocketserverimportBaseServer。,并且根据需要扩展了相关功能,例如支持IPv6和定制错误处理等。Django在这部分代码中通过自定义的。类与WSGI服务器进行关联。具体来说,Django使用。作为服务器基础类,它继承了。
2025-01-06 22:13:50
663
原创 JWT的生成和工作原理
JWT(JSON Web Token)是一种开放标准(RFC 7519),用于在各方之间以 JSON 对象的形式安全地传递信息。头部(Header)载荷(Payload)签名(Signature)这些部分通过Base64 URL 编码后组合在一起,形成一个完整的 JWT Token,通常用于身份验证和信息交换。JWT 是一种非常流行且强大的身份验证与信息交换标准。它具有自包含、无状态等特点,适合分布式系统和微服务架构的应用。
2024-12-24 22:54:55
844
原创 Python中的抽象类
抽象类父类约束子类的一种行为称为抽象类是一个不能被实例化的类,用来作为其他类的基类。它定义了某些方法,但不提供具体实现要求子类必须实现这些方法。作用。
2024-12-20 16:45:41
219
原创 Django Auth的基本使用
auth 组件导包from django.contrib import auth1. 登录 对比用户和秘密是否正确 user_obj = auth.authenticate(request, username=username, password=password) 保存用户信息 (存到 djang_session表中) auth.login(request, user_obj)1.1 def login(request):
2024-12-01 17:14:44
879
原创 Django 自定义路由转换器
定义 一个匹配非数字的全局注册局部注册假设需要自定义一个转换器 ,用于匹配四位年份。注册转换器在 中注册自定义转换器:视图函数反向解析
2024-11-25 14:18:16
585
原创 Django中 model 一对一 一对多 多对多关系 关联
使用定义一对一关系,表示一个模型实例与另一个模型实例一一对应。示例# 使用示例# 假设已经有一个 User 实例 useron_deleteCASCADE: 删除相关对象。SET_NULL: 设置为NULL。PROTECT: 阻止删除。: 设置为默认值。
2024-11-23 15:32:06
648
原创 深入探究 Flask 的应用和请求上下文
因此,浏览器会向 Web 服务器(如 Nginx 或 Apache)发送请求,以请求特定的 URL(上图中的“/”URL)。的概念,用于存储特定于线程的数据,它既是“线程安全的,又是线程唯一的”。现在 Flask 应用程序已准备好处理数据(在视图函数中),并且数据已在应用程序和请求上下文堆栈中准备就绪,我们需要一种方法来连接这两部分......在上一节中,我们了解了在 Flask 中处理请求时如何使用应用程序上下文堆栈和请求上下文堆栈。同时,请求上下文存储需要处理以生成响应的特定于请求的数据。
2024-09-18 16:49:23
1225
原创 Flask-JWT-Extended登录验证, 不用自定义
access_token = create_access_token(identity=username, fresh=True) # fresh=True 创建新鲜令牌。access_token = create_access_token(identity=username, fresh=True) # fresh=True 创建新鲜令牌。# max_age=60 * 60 * 24 * 7 # 7天有效期。# max_age=60 * 60 * 24 * 7 # 7天有效期。
2024-09-18 00:32:39
1359
原创 Flask-SQLAlchemy一对多 一对一 多对多关联
在实际使用中,通过这些关联关系,可以方便地进行查询、添加、更新和删除等操作,例如获取某个作者的所有书籍,或者获取某个用户的资料等。(书籍),一个作者可以有多本书。(用户资料)是一对一的关系。外键来建立一对多的关系。在上述示例中,通过在。(作者)和 Book。在上述示例中,通过在。
2024-09-17 22:13:14
726
原创 JavaScript创建对象方式
/ 自动创建对象// 手动向对象里面添加成员// 这里的 this 指向当前实例(new 前面的变量)// 自动返回对象。
2024-09-17 21:46:28
321
原创 Flask 设置cookies 自定义验证登录
HTTPOnly (httponly): 指定 cookie 是否只能通过 HTTP 协议访问,避免 JavaScript 读取。max_age=datetime.timedelta(hours=2), # 设置会话有效期时间。max_age=datetime.timedelta(hours=2), # 设置会话有效期时间。路径 (path): 指定 cookie 在什么路径下有效。过期时间 (expires): 指定 cookie 何时过期。3. 设置cookies会话有效期。
2024-09-17 21:43:00
1110
原创 Flask 设置session 自定义登录验证
app.permanent_session_lifetime = datetime.timedelta(days=2) # 会话有效期2天。app.permanent_session_lifetime = 60 * 60 * 24 * 7 # 会话有效期7天。1. session.permanent = True # 设置会话过期时间。session.permanent = True # 设置会话过期时间。2. # 两种设置会话有效期时间方法。3. 设置session会话有效期。
2024-09-17 21:39:13
736
原创 Flask-JWT-Extended登录验证
"""安装:创建对象 初始化与app绑定jwt = JWTManager(app) # 初始化JWTManager设置 Cookie 的选项:除了设置 cookie 的名称和值之外,你还可以指定其他的选项,例如:过期时间 (max_age): 指定 cookie 何时过期。# max_age=60 * 60 * 24 * 7 # 7天有效期1. 设置cookies# 设置cookies成功 重定向到首页# 创建JWT token,只存储用户名。
2024-09-17 21:06:47
1918
原创 hashlib 各种加密的使用
的成本因子(cost factor)控制了哈希计算的复杂度,默认为 12。是现代密码哈希的推荐选择之一,特别适合在需要高安全性、需要防止大规模硬件破解的场景中使用。被广泛认为是安全的密码哈希算法,适合用于存储用户密码等需要高安全性的场景。:验证用户提供的密码与存储的哈希值是否匹配。:通用的哈希对象创建函数,可以指定算法名称。或更强的算法用于实际密码哈希,避免使用。其他列出的算法和属性要么不适用于。,要么与密码哈希无关。以下是使用 Python 的。下面是使用 Python 的。3. 查看所有hash方法。
2024-09-11 22:15:45
940
原创 base64编码使用方法
这些函数大多用于编码和解码字节串,特别是 Base64、Base32、Base16 和 Base85 编码。这些编码方法常用于数据传输或存储。
2024-09-11 16:56:06
652
原创 scrapy 手动发起GET POST请求
可以用于发送更灵活的 POST 数据,如 JSON 数据或自定义的请求头。data = {url,body=json.dumps(data), # 转换为JSON。
2024-06-12 22:52:28
515
原创 scrapy meta 和 cb_kwargs参数
更适合传递较多或较复杂的数据,因为它是一个字典,可以在多个回调函数之间共享和修改。 更适合传递少量的简单数据,因为它直接将数据作为函数参数传递,便于访问 使用 可以让代码更加简洁和可读,回调函数的参数一目了然。 使用 需要通过 来访问数据,稍显繁琐,但更灵活。 可以与 Scrapy 的其他功能(如中间件和扩展)很好地兼容,因为许多 Scrapy 功能依赖于 字典。 主要用于传递回调函数需要的特定数据,不会与其他功能产生冲突。
2024-06-12 22:36:24
454
原创 Matplotlib 无法正常中文显示
y = x + 1font1 = matplotlib.font_manager.FontProperties(fname='SimHei.ttf') # 当前目录下plt.rcParams['font.size'] = 18 # 设置字体大小# fontproperties 设置中文显示,fontsize 设置字体大小plt.title("测试饼图1", fontproperties=font1)plt.xlabel('测试x轴', fontproperties=font1)
2024-05-09 18:09:25
567
原创 xhr, jquery.ajax, axios前端发送请求
是最底层的 API,适用于需要直接控制 HTTP 请求的场景。jQuery 的 AJAX 方法:提供了更高级、更简洁的接口,适用于使用 jQuery 的项目。Axios:是一个现代、功能丰富的 HTTP 客户端,适用于大多数现代前端项目,特别是与结合使用时。
2024-03-20 19:13:48
1100
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人