From 57dc37e009977f8b18a5da4efc59f28f96c56e81 Mon Sep 17 00:00:00 2001 From: Henry Ji Date: Tue, 4 Jun 2024 12:42:57 +0800 Subject: [PATCH] update --- Morningstar/forms.py | 37 ++++++++++++++++++++++-------- Morningstar/settings/common.py | 5 ++++ Morningstar/settings/dev.py | 2 +- Morningstar/settings/production.py | 6 +---- Morningstar/views/tool.py | 4 ++-- apps/share/views.py | 5 ++-- 6 files changed, 40 insertions(+), 19 deletions(-) diff --git a/Morningstar/forms.py b/Morningstar/forms.py index 0917904c..51730d27 100644 --- a/Morningstar/forms.py +++ b/Morningstar/forms.py @@ -1,6 +1,7 @@ from django import forms from django_recaptcha.fields import ReCaptchaField from django.core.validators import RegexValidator +from django.http import HttpRequest from django_redis import get_redis_connection import re @@ -16,7 +17,9 @@ class LoginForm(forms.Form): label="账户", initial="", required=True, - widget=forms.TextInput(attrs={"placeholder": "用户名/邮箱/手机号", "class": "w-full"}), + widget=forms.TextInput( + attrs={"placeholder": "用户名/邮箱/手机号", "class": "w-full"} + ), ) password = forms.CharField( label="密码", @@ -56,9 +59,9 @@ def clean_identity(self): def clean_image_captcha(self): image_captcha = self.cleaned_data["image_captcha"] - request = self.request + request: HttpRequest = self.request - session_key = request.session._session_key + session_key = request.session.session_key conn = get_redis_connection("default") redis_image_captcha = conn.get(f"{session_key}-image-captcha") @@ -84,7 +87,9 @@ class RegisterForm(forms.Form): required=True, widget=forms.EmailInput(attrs={"placeholder": FAKE_EMAIL, "class": "w-full"}), validators=[ - RegexValidator(r"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$", "邮箱格式错误"), + RegexValidator( + r"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$", "邮箱格式错误" + ), ], ) @@ -99,7 +104,10 @@ class RegisterForm(forms.Form): ], min_length=6, max_length=16, - error_messages={"min_length": "密码长度不能小于6个字符", "max_length": "密码长度不能大于16个字符"}, + error_messages={ + "min_length": "密码长度不能小于6个字符", + "max_length": "密码长度不能大于16个字符", + }, ) confirm_password = forms.CharField( @@ -110,7 +118,10 @@ class RegisterForm(forms.Form): ), min_length=6, max_length=16, - error_messages={"min_length": "密码长度不能小于6个字符", "max_length": "密码长度不能大于16个字符"}, + error_messages={ + "min_length": "密码长度不能小于6个字符", + "max_length": "密码长度不能大于16个字符", + }, ) captcha = ReCaptchaField(label="人机验证") @@ -182,7 +193,9 @@ class UpdateEmailForm(forms.Form): email = forms.EmailField( label="邮箱", validators=[ - RegexValidator(r"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$", "邮箱格式错误"), + RegexValidator( + r"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$", "邮箱格式错误" + ), ], ) email_code = forms.CharField( @@ -246,7 +259,10 @@ class UpdatePasswordForm(forms.Form): ], min_length=6, max_length=16, - error_messages={"min_length": "密码长度不能小于6个字符", "max_length": "密码长度不能大于16个字符"}, + error_messages={ + "min_length": "密码长度不能小于6个字符", + "max_length": "密码长度不能大于16个字符", + }, ) confirm_password = forms.CharField( @@ -257,7 +273,10 @@ class UpdatePasswordForm(forms.Form): ), min_length=6, max_length=16, - error_messages={"min_length": "密码长度不能小于6个字符", "max_length": "密码长度不能大于16个字符"}, + error_messages={ + "min_length": "密码长度不能小于6个字符", + "max_length": "密码长度不能大于16个字符", + }, ) def clean_confirm_password(self): diff --git a/Morningstar/settings/common.py b/Morningstar/settings/common.py index e0f6ef1b..7f473272 100644 --- a/Morningstar/settings/common.py +++ b/Morningstar/settings/common.py @@ -412,6 +412,11 @@ def filter(self, record): else 5 ) +"""会话""" +SESSION_ENGINE = "django.contrib.sessions.backends.cache" +SESSION_CACHE_ALIAS = "default" +SESSION_SERIALIZER = "django.contrib.sessions.serializers.JSONSerializer" + """Matomo""" MATOMO_SITE_ID = 1 MATOMO_URL = "https://matomo.morningstar369.com/" diff --git a/Morningstar/settings/dev.py b/Morningstar/settings/dev.py index 41acb791..9f9769d7 100644 --- a/Morningstar/settings/dev.py +++ b/Morningstar/settings/dev.py @@ -18,7 +18,6 @@ """缓存""" -CACHE_TIMEOUT = 5 CACHES = { "default": { "BACKEND": "django_redis.cache.RedisCache", @@ -26,6 +25,7 @@ "OPTIONS": { "CLIENT_CLASS": "django_redis.client.DefaultClient", "CONNECTION_POOL_KWARGS": {"max_connections": 1000, "encoding": "utf-8"}, + "PASSWORD": "1234asdw", }, } } diff --git a/Morningstar/settings/production.py b/Morningstar/settings/production.py index 96076c06..fdd074eb 100644 --- a/Morningstar/settings/production.py +++ b/Morningstar/settings/production.py @@ -36,11 +36,7 @@ } } -"""缓存与会话""" -SESSION_ENGINE = "django.contrib.sessions.backends.cache" -SESSION_CACHE_ALIAS = "default" -SESSION_SERIALIZER = "django.contrib.sessions.serializers.JSONSerializer" -CACHE_TIMEOUT = 60 * 5 +"""缓存""" CACHES = { "default": { "BACKEND": "django_redis.cache.RedisCache", diff --git a/Morningstar/views/tool.py b/Morningstar/views/tool.py index 8c1ee371..fc072a5f 100644 --- a/Morningstar/views/tool.py +++ b/Morningstar/views/tool.py @@ -25,8 +25,8 @@ def get_image_captcha(request: HttpRequest): """生成图片验证码""" image_object, code = generate_image() - session_key = request.session._session_key - + request.session.cycle_key() + session_key = request.session.session_key conn = get_redis_connection("default") conn.set(f"{session_key}-image-captcha", code, ex=60) diff --git a/apps/share/views.py b/apps/share/views.py index 2122f873..ce1ad9b4 100644 --- a/apps/share/views.py +++ b/apps/share/views.py @@ -40,7 +40,7 @@ def route(request: HttpRequest, id): def get_qrcode(request: HttpRequest): - session_key = request.session._session_key + session_key = request.session.session_key conn = get_redis_connection("default") link = conn.get(f"{session_key}-share-qrcode") back_color = (255, 255, 255) @@ -69,7 +69,8 @@ def submit(request: HttpRequest): item.save() id = item.id link = f"redirect/{id}/" - session_key = request.session._session_key + request.session.cycle_key() + session_key = request.session.session_key conn = get_redis_connection("default") conn.set( f"{session_key}-share-qrcode",