first commit

This commit is contained in:
root
2024-09-20 04:29:09 +00:00
commit 5383007f49
459 changed files with 88755 additions and 0 deletions

0
WebSite/__init__.py Executable file
View File

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

16
WebSite/asgi.py Executable file
View File

@@ -0,0 +1,16 @@
"""
ASGI config for WebSite project.
It exposes the ASGI callable as a module-level variable named ``application``.
For more information on this file, see
https://docs.djangoproject.com/en/5.0/howto/deployment/asgi/
"""
import os
from django.core.asgi import get_asgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "WebSite.settings")
application = get_asgi_application()

269
WebSite/settings.py Executable file
View File

@@ -0,0 +1,269 @@
"""
Django settings for WebSite project.
Generated by 'django-admin startproject' using Django 5.0.7.
For more information on this file, see
https://docs.djangoproject.com/en/5.0/topics/settings/
For the full list of settings and their values, see
https://docs.djangoproject.com/en/5.0/ref/settings/
"""
import os
from pathlib import Path
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/5.0/howto/deployment/checklist/
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = "django-insecure-!4a*kl(!=s*76xngra89q*86d&e8ya=l49!bibepo6p1(50+$s"
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
ALLOWED_HOSTS = ['*']
# settings.py
AUTH_USER_MODEL = 'WebAdmin.User'
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
'WebAdmin.apps.WebadminConfig',
'django.contrib.sites', # Django sites framework
'allauth', # Django allauth
'allauth.account', # Django allauth accounts
'allauth.socialaccount', # Django allauth social accounts
'allauth.socialaccount.providers.google', # Google provider
]
SITE_ID = 1
# 配置会话
SESSION_ENGINE = 'django.contrib.sessions.backends.db' # 使用数据库存储会话
SESSION_COOKIE_AGE = 259200 # 3 hours, in seconds
# 其他安全设置
SESSION_COOKIE_SECURE = True
SESSION_COOKIE_HTTPONLY = True
CSRF_COOKIE_SECURE = True
CSRF_COOKIE_HTTPONLY = True
SESSION_SAVE_EVERY_REQUEST = True
AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend',
'allauth.account.auth_backends.AuthenticationBackend',
)
LOGIN_REDIRECT_URL = '/user/userinfo/' # 登录后重定向的URL
LOGIN_URL = '/'
LOGOUT_REDIRECT_URL = '/'
# 配置 Google OAuth2
SOCIALACCOUNT_PROVIDERS = {
'google': {
'SCOPE': [
'profile',
'email',
],
'AUTH_PARAMS': {
'access_type': 'online',
},
'APP': {
'client_id': '695125996308-hvfk1eui9vstkhs2ucfgf9pch5j661ng.apps.googleusercontent.com',
'secret': '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',
}
}
}
CSRF_TRUSTED_ORIGINS = [
'https://www.typeframes.cc',
'https://typeframes.cc',
'https://typeframes.ai',
'https://www.typeframes.ai',
'https://typeframes.com.cn',
'https://www.typeframes.com.cn',
'http://localhost',
'http://127.0.0.1',
]
## 邮箱配置
# settings.py
SECRET_ID = "AKIDjNrBSnBXnAQXg6ythOADLJ2nOuLpFaoo"
MAIL_SECRET_KEY = "ENPZnwADD623HUm15EITdvDhAa8nQxLk"
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.exmail.qq.com'
EMAIL_PORT = 587 # 使用 TLS 的端口
EMAIL_USE_TLS = True
EMAIL_HOST_USER = 'admin@typeframes.cc'
EMAIL_HOST_PASSWORD = 'TOb7MuGmVgit9c'
DEFAULT_FROM_EMAIL = 'admin@typeframes.cc'
TENCENT_CLOUD_API_VERSION = "2020-10-02"
#阿里云短信配置
ALIBABA_CLOUD_ACCESS_KEY_ID='LTAI5tHKcV1RbC8t68UfsATy'
ALIBABA_CLOUD_ACCESS_KEY_SECRET='wLWjMBnAlchFMa9gC8B7ZVBKaew4t5'
MIDDLEWARE = [
'allauth.account.middleware.AccountMiddleware',
"django.middleware.security.SecurityMiddleware",
"django.contrib.sessions.middleware.SessionMiddleware",
'WebAdmin.middleware.CheckSessionMiddleware', # 添加自定义中间件
'django.middleware.locale.LocaleMiddleware', # 添加这行
"django.middleware.common.CommonMiddleware",
# "django.middleware.csrf.CsrfViewMiddleware",
"django.contrib.auth.middleware.AuthenticationMiddleware",
"django.contrib.messages.middleware.MessageMiddleware",
"django.middleware.clickjacking.XFrameOptionsMiddleware",
]
ROOT_URLCONF = "WebSite.urls"
TEMPLATES = [
{
"BACKEND": "django.template.backends.django.DjangoTemplates",
"DIRS": [os.path.join(BASE_DIR, 'templates')],
"APP_DIRS": True,
"OPTIONS": {
"context_processors": [
"django.template.context_processors.debug",
"django.template.context_processors.request",
"django.contrib.auth.context_processors.auth",
"django.contrib.messages.context_processors.messages",
],
},
},
]
WSGI_APPLICATION = "WebSite.wsgi.application"
# Database
# https://docs.djangoproject.com/en/5.0/ref/settings/#databases
DATABASES = {
'default':
{
'ENGINE': 'django.db.backends.mysql', # 数据库引擎
'NAME': 'admin_data', # 数据库名称
'HOST': '1Panel-mysql-61G1', # 数据库地址,本机 ip 地址 127.0.0.1
'PORT': 3306, # mysql端口
'USER': 'admin_data', # 数据库用户名
'PASSWORD': 'mPmFz2NeXSYbzrt5', # 数据库密码
'OPTIONS': {
'charset': 'utf8mb4',
'use_unicode': True,
},
},
'external_db': {
'ENGINE': 'django.db.backends.mysql', # 外部数据库
'NAME': 'uinapp',
'USER': 'uinapp',
'PASSWORD': '6CnCBxZ77cLredtK',
'HOST': '81.70.187.27',
'PORT': '3306',
}
}
# Password validation
# https://docs.djangoproject.com/en/5.0/ref/settings/#auth-password-validators
AUTH_PASSWORD_VALIDATORS = [
{
"NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator",
},
{
"NAME": "django.contrib.auth.password_validation.MinimumLengthValidator",
},
{
"NAME": "django.contrib.auth.password_validation.CommonPasswordValidator",
},
{
"NAME": "django.contrib.auth.password_validation.NumericPasswordValidator",
},
]
# Internationalization
# https://docs.djangoproject.com/en/5.0/topics/i18n/
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
USE_TZ = False
# 项目根目录路径
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# 静态文件 (CSS, JavaScript, Images)
STATIC_URL = '/static/'
# 媒体文件
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
# Default primary key field type
# https://docs.djangoproject.com/en/5.0/ref/settings/#default-auto-field
DOMAIN = 'https://www.typeframes.ai' # 或者 'https://example.com'
DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField"
# 微软云存储
AZURE_CONNECTION_STRING = 'DefaultEndpointsProtocol=https;AccountName=a1726850085;AccountKey=GADf/0Vv7HZpXGAR1KbpOfE1Uuo7p6WVyUwqBgsHRurmlzF8HKDWO1FkIGlwLc+fiseyHzW5OA5B+AStFHjWxQ==;EndpointSuffix=core.windows.net'
AZURE_CONTAINER_NAME = 'audio'
#支付宝电脑版支付配置
# 支付宝配置
ALIPAY_DEBUG = True # True 表示沙箱环境False 表示生产环境
# 沙箱环境配 电脑支付宝
ALIPAY_APP_ID_SANDBOX_PC = '9021000139657593' # 沙箱环境电脑端应用ID
ALIPAY_APP_PRIVATE_KEY_SANDBOX_PC = 'MIIEpAIBAAKCAQEAzTFT91PExk5VcNmv6fK3/s/kTanHjOdk1JOZZ4VruHmcO4Pe5Ml2yGM3Rm0QsiHONkcEEXI3VaIZC613Kfi78fRAQuWfhMmh/wskAguBC0Jm0lX5Ui4liE+gpjTxVa2U6vtv3Eehy9jU5zT6Apet9Z1uL1DByGQ81NWgZy+hbbLp3M5+3MgzV85PhcSRliP0wH3VJEWFKW9XDII9NmEJhRV4P+jX9H/gRxXsMBMIGqhFEjvnhFnF6wtMDeANnYOFbOMX6RgE4xGXmKabmsGbGx4XkHM4eBAU0SGyOjAjvRzGrW56KfBz8P5zgWgwarLWuKzvqtFkRkw1c09pDxa3qQIDAQABAoIBAQCJJ3W2ljmrS+T0f62ENQcjvZYfC2MlHe5Z4Sbi+V2dezwg0+6DAt7w5tCltHU6fDo4MZPYjX3LMYSIN7S1S1tlSRxDGvVbbuNndOzmqQXinsnXwjva4JmZ2Y/KSQ0fdd1ajCKjHQZbGV6GBPUwEm7nBAoIenRtHANFSF3lWwMOLRxe9rUp4U+XwqImN3DSBOAbHNqgk6QO0yKZmIPSxYj5ptrLaneIZ1C+lxwvot6MDVFcc8nJ9lezNIUGdLkh2qdLJ/Zi9sHFfihydvryXU/Ckzi3aLUxyBFtVxcu7g1qkVy3q3l5Oye5svMZaQwgdlnO4UQE/FXS7ltSOJocrogBAoGBAO5ZHo18FIVOOmuQgdb8b7rFaIZXhV6JKOotP+R5GiPcNzAQUjxBEivqRDvJJ73sxmk9YJv0nzn0CTwN54z0zNZ4WOnCu+Bh9oP5gVBBcc+kdsMIF9HBRfnLWV6kkHRbM3WhOQ7o0hhmUgHbxP7YuTpmqgzGSw74JFWCe6+S+/mBAoGBANxjnACpfcdA7iUZ9oqH/6XTOM4zgk53pxZplzFGBHPw79WnlKCdzQw1mGnxah0y5awibyVI+CrUVCsrJbO7VWv2GT4oJzcrHkqKGWBJJVT45ddaAZaAwrkyxySZWFEXs0yfpn4gTpaDikCORcNnKNQBiKkkLMmaqeaxZbRVqMIpAoGAUy+Fa0nn+5KO7yWzOy5FbIEjdueq45CpV/nM99eQWP2twTehC+iGCA+uGtOc7DtsECTcx/F7dQWIB46uxtJVf3DnT0aovapTGEKHcFQ2/Ypf7LexYIK9Am6HVXHH/OQrtJ09RcfaM6vaaU2jlnJbS1ezd9vpLGNMgw+UTXXWPYECgYEAnwjSPjgQp4RXVTaTDgxtkoAFcecBlRYK4MV5cPkRpYiryQWQ3waAPNtADNNEu6VKzxhaFBG/40gtJKmSH0yDq9B/Drdy9QCMb0WQYkbmRZcGZIxysORhn7rgsaxmar4riJN8VW+CxmJNlaAU/5ilgbdJoqSUHTcae3pv5d4aVWECgYBNl0g/weXPMPKAiSzLDddOSgpv+54js8C+T2gH0mX9XGCUpX6mrGgnlIqLTNT2DjzgHCC5nnGf63Ffo8dSzKf9mvaGilq4qTgzBIXqeqIGmslhV0ai97KHNvEdgIPTbNBIAaRyUSJEY0lF26JqFUGiEad9Kyw8LIOEPW62ET2SZA==' # 沙箱环境电脑端应用私钥
ALIPAY_PUBLIC_KEY_SANDBOX_PC = 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwBw5gCeI7XcMRuiKVcu95f4rpjgyKnztWqzpxVn43xz6ZmU01j2cLT9pNcsDvCz8+9bKALVYslg9WJsVAOVk422k7wd0KKHbmptkvuTiSzNc6kVNDYsQRwma8W/vJgH5bVBL6TpOqWZSJlEHSLT6YTPK1kOE3E8e2cdO2YQOVPw13+8H5xBRdpPTRsA7J4i+4TN5xjtNOuGQUcyo3jBf/O6esDGqQcDNQLqPT5V9tcR2aEPLmWITD3I64URYBnvhuDzezVdTdB7q+9qyMEs+SZ8q3Cy6uSudFuqXODL+esKP7xiBqxkGQhF6rKO6l4j3xnxgJVzsqoORpG6bptVxJQIDAQAB' # 沙箱环境电脑端支付宝公钥
ALIPAY_APP_ID_SANDBOX_MOBILE = '9021000139657593' # 沙箱环境移动端应用ID
ALIPAY_APP_PRIVATE_KEY_SANDBOX_MOBILE = 'MIIEpAIBAAKCAQEAzTFT91PExk5VcNmv6fK3/s/kTanHjOdk1JOZZ4VruHmcO4Pe5Ml2yGM3Rm0QsiHONkcEEXI3VaIZC613Kfi78fRAQuWfhMmh/wskAguBC0Jm0lX5Ui4liE+gpjTxVa2U6vtv3Eehy9jU5zT6Apet9Z1uL1DByGQ81NWgZy+hbbLp3M5+3MgzV85PhcSRliP0wH3VJEWFKW9XDII9NmEJhRV4P+jX9H/gRxXsMBMIGqhFEjvnhFnF6wtMDeANnYOFbOMX6RgE4xGXmKabmsGbGx4XkHM4eBAU0SGyOjAjvRzGrW56KfBz8P5zgWgwarLWuKzvqtFkRkw1c09pDxa3qQIDAQABAoIBAQCJJ3W2ljmrS+T0f62ENQcjvZYfC2MlHe5Z4Sbi+V2dezwg0+6DAt7w5tCltHU6fDo4MZPYjX3LMYSIN7S1S1tlSRxDGvVbbuNndOzmqQXinsnXwjva4JmZ2Y/KSQ0fdd1ajCKjHQZbGV6GBPUwEm7nBAoIenRtHANFSF3lWwMOLRxe9rUp4U+XwqImN3DSBOAbHNqgk6QO0yKZmIPSxYj5ptrLaneIZ1C+lxwvot6MDVFcc8nJ9lezNIUGdLkh2qdLJ/Zi9sHFfihydvryXU/Ckzi3aLUxyBFtVxcu7g1qkVy3q3l5Oye5svMZaQwgdlnO4UQE/FXS7ltSOJocrogBAoGBAO5ZHo18FIVOOmuQgdb8b7rFaIZXhV6JKOotP+R5GiPcNzAQUjxBEivqRDvJJ73sxmk9YJv0nzn0CTwN54z0zNZ4WOnCu+Bh9oP5gVBBcc+kdsMIF9HBRfnLWV6kkHRbM3WhOQ7o0hhmUgHbxP7YuTpmqgzGSw74JFWCe6+S+/mBAoGBANxjnACpfcdA7iUZ9oqH/6XTOM4zgk53pxZplzFGBHPw79WnlKCdzQw1mGnxah0y5awibyVI+CrUVCsrJbO7VWv2GT4oJzcrHkqKGWBJJVT45ddaAZaAwrkyxySZWFEXs0yfpn4gTpaDikCORcNnKNQBiKkkLMmaqeaxZbRVqMIpAoGAUy+Fa0nn+5KO7yWzOy5FbIEjdueq45CpV/nM99eQWP2twTehC+iGCA+uGtOc7DtsECTcx/F7dQWIB46uxtJVf3DnT0aovapTGEKHcFQ2/Ypf7LexYIK9Am6HVXHH/OQrtJ09RcfaM6vaaU2jlnJbS1ezd9vpLGNMgw+UTXXWPYECgYEAnwjSPjgQp4RXVTaTDgxtkoAFcecBlRYK4MV5cPkRpYiryQWQ3waAPNtADNNEu6VKzxhaFBG/40gtJKmSH0yDq9B/Drdy9QCMb0WQYkbmRZcGZIxysORhn7rgsaxmar4riJN8VW+CxmJNlaAU/5ilgbdJoqSUHTcae3pv5d4aVWECgYBNl0g/weXPMPKAiSzLDddOSgpv+54js8C+T2gH0mX9XGCUpX6mrGgnlIqLTNT2DjzgHCC5nnGf63Ffo8dSzKf9mvaGilq4qTgzBIXqeqIGmslhV0ai97KHNvEdgIPTbNBIAaRyUSJEY0lF26JqFUGiEad9Kyw8LIOEPW62ET2SZA==' # 沙箱环境移动端应用私钥
ALIPAY_PUBLIC_KEY_SANDBOX_MOBILE = 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwBw5gCeI7XcMRuiKVcu95f4rpjgyKnztWqzpxVn43xz6ZmU01j2cLT9pNcsDvCz8+9bKALVYslg9WJsVAOVk422k7wd0KKHbmptkvuTiSzNc6kVNDYsQRwma8W/vJgH5bVBL6TpOqWZSJlEHSLT6YTPK1kOE3E8e2cdO2YQOVPw13+8H5xBRdpPTRsA7J4i+4TN5xjtNOuGQUcyo3jBf/O6esDGqQcDNQLqPT5V9tcR2aEPLmWITD3I64URYBnvhuDzezVdTdB7q+9qyMEs+SZ8q3Cy6uSudFuqXODL+esKP7xiBqxkGQhF6rKO6l4j3xnxgJVzsqoORpG6bptVxJQIDAQAB' # 沙箱环境移动端支付宝公钥
# 生产 电脑支付宝
ALIPAY_APP_ID_PRODUCTION_PC = '2021004169658094' # 生产环境电脑端应用ID
ALIPAY_APP_PRIVATE_KEY_PRODUCTION_PC = 'MIIEowIBAAKCAQEAlkLen9IPB0OhhRnDw0Ks1yX74oXSLJ4hEaqQmJqXI8qfNFL+DiuEWs+yAZRad8mDOUqERka1YrMI9Y7iVyGWhcFRHe91+oNNDZlrXp1K/SzPWtA1tPbkBrgxV5lgj/fGKJrMlJhlfF7Bio8b9jOfyMtaqolP777tD0zMAdIbKYCW1wmUgUeRsNplDO/8GIDoJV+qGxTEd2TN3eJfC9MBIkCW/b1QHTXukJIFzKGufNRNJIWbPi/wmyMaUd+lyemz//sNhD2+CpiuB4pi/v3c8tQsPJeOslRpo9+T0lg9wLlDgMMeajf+PMzjErRmiOxI1ZwNn8xkaE6ZfeDhh18v1wIDAQABAoIBAQCQ225bjNpIGn8AHdKHzyNpVoj53CC+OsOOkGxNcdr6+j945fleF73E/i2RMD/28yG6fYf/Z/M9b3PXpyO09AB0eeWFgnCuTR5fWeQUlnbQk/5igg8Eom85uyB2XrqkkC1Mv88yAaj0uTTEKyq9sw77OG/zr+SML/fBpDuYFcFxw7JnD+TxKBeqT6gd1RHcfeyta1MWiEsQeX7y2PGicn5HjbGLCsJxvJVGyvaQFPBN5eoIesSm74DEFL25ZdR1vpaWYGm7XZgAY6dgzPbijFx2nLMRAM9e+M6I0u75k0mDSVb9y+1TXqEKPSG7FegIbzhylj20ZcwWYb0SgJ8sHuvBAoGBAOcRBlbtkq4uGqFyTY1y1WedxSMJf0bMfYum3CvT7YAOVffVxye2I3s4v1Os1NPR5M+om7eEtgN+9Zl2DIagPlTB6CrYRg26hwnDuNhLqLZHo8IW0IK2xY8QSPzvRJcx1sSvTqLXG/MdsFDV9SGNxYazYpIqlL2Q2cUHImc6+JqZAoGBAKZ5rnVPlOQ20aXCe/0nn7K6PIFCQhBHayBjXmqaNi7ZGVgM1CXrvFffpGrc7e60gVfbOkZjzUy0XJAmagYTNZ8+HDh52y6YRoMR3XjPKgrs4+hdraG1vBVSmxRpzUfYqqq+k9T2dnK3pjkYIrDZiiwsT57o2EispQBWRfNmKZPvAoGAeclBXCPPgbqPErTaJ0l1LS28r+DbkodJTIff18HVlf74VK36T/Xx8YpRXVrkudgRD1pA6JMsE9+gtwe/Rl3DPI0PPzXKhoXfksfz7xzBiYFs0GmR8LNAoUzmC1pY/o+oMPZtLerOsm7ddV2v28WLbJmzxHJo/xkPjodaHKq6SVECgYAxGLHa5x2CMKijujfW8Vin3UT62g+hvW5anvO5fMF+D4jp7t6iUGO7hrl2yrFhNNrwjjchi02A0bB60tlx8ThfPnIUNdvuYfpprVsjxfUgQ7zzSq1qg650m2ghHRLtnXi34ny20fkc3AypyfRxM7cMUAUrWIBw7nm7H7aBkh+xAQKBgH4Zaxjcn/OsF4QPCJqzf02+zHh7FGGLnsjZXmtVoNDmmFJFXj5ey05jfcNyoRdtffl0Fa/mbkiL1YcAUoBmkyS7MA4mrrM5vG5ZKtLcul1qeC9JrJ2FEcZBmny2fdbfzFFuBdhz0jbOGoDOKl5KWM7EQoxk377DQVRQ884B0Cc+' # 生产环境电脑端应用私钥
ALIPAY_PUBLIC_KEY_PRODUCTION_PC = 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAomw6g4rBmCr/QoX3NI3DVLyDpkaUytZ2uFhdfQaegIDAuUfZfgpTCASlAtO82t8ISAbSOSyp9CUpwdGV4EYOiCBbLxMYB6taaHPiIjJ1zNT1EakJzWgU53hz1AVeABB9kdAvMqSvjH6KLoVupmqm4Li8ZwDW9M2ANAmyDfKgiF0Lt4aUUnaZktoCrTWTkpmtfRZCHNACj851IllvN2wyC4OL7dJq5UzOFxmn07Dy/2z4UAhaaSAyRVawpOui5AIYJTXZERLYL3KMyRnMuZoFq3xltzVTzRPM06nRa9RfeVNVwWVtGBIe/r8tcg5wyhI57KUszGNOmUIm/se6G2lnAQIDAQAB' # 生产环境电脑端支付宝公钥
ALIPAY_APP_ID_PRODUCTION_MOBILE = '2021004169658094' # 生产环境移动端应用ID
ALIPAY_APP_PRIVATE_KEY_PRODUCTION_MOBILE = 'MIIEowIBAAKCAQEAlkLen9IPB0OhhRnDw0Ks1yX74oXSLJ4hEaqQmJqXI8qfNFL+DiuEWs+yAZRad8mDOUqERka1YrMI9Y7iVyGWhcFRHe91+oNNDZlrXp1K/SzPWtA1tPbkBrgxV5lgj/fGKJrMlJhlfF7Bio8b9jOfyMtaqolP777tD0zMAdIbKYCW1wmUgUeRsNplDO/8GIDoJV+qGxTEd2TN3eJfC9MBIkCW/b1QHTXukJIFzKGufNRNJIWbPi/wmyMaUd+lyemz//sNhD2+CpiuB4pi/v3c8tQsPJeOslRpo9+T0lg9wLlDgMMeajf+PMzjErRmiOxI1ZwNn8xkaE6ZfeDhh18v1wIDAQABAoIBAQCQ225bjNpIGn8AHdKHzyNpVoj53CC+OsOOkGxNcdr6+j945fleF73E/i2RMD/28yG6fYf/Z/M9b3PXpyO09AB0eeWFgnCuTR5fWeQUlnbQk/5igg8Eom85uyB2XrqkkC1Mv88yAaj0uTTEKyq9sw77OG/zr+SML/fBpDuYFcFxw7JnD+TxKBeqT6gd1RHcfeyta1MWiEsQeX7y2PGicn5HjbGLCsJxvJVGyvaQFPBN5eoIesSm74DEFL25ZdR1vpaWYGm7XZgAY6dgzPbijFx2nLMRAM9e+M6I0u75k0mDSVb9y+1TXqEKPSG7FegIbzhylj20ZcwWYb0SgJ8sHuvBAoGBAOcRBlbtkq4uGqFyTY1y1WedxSMJf0bMfYum3CvT7YAOVffVxye2I3s4v1Os1NPR5M+om7eEtgN+9Zl2DIagPlTB6CrYRg26hwnDuNhLqLZHo8IW0IK2xY8QSPzvRJcx1sSvTqLXG/MdsFDV9SGNxYazYpIqlL2Q2cUHImc6+JqZAoGBAKZ5rnVPlOQ20aXCe/0nn7K6PIFCQhBHayBjXmqaNi7ZGVgM1CXrvFffpGrc7e60gVfbOkZjzUy0XJAmagYTNZ8+HDh52y6YRoMR3XjPKgrs4+hdraG1vBVSmxRpzUfYqqq+k9T2dnK3pjkYIrDZiiwsT57o2EispQBWRfNmKZPvAoGAeclBXCPPgbqPErTaJ0l1LS28r+DbkodJTIff18HVlf74VK36T/Xx8YpRXVrkudgRD1pA6JMsE9+gtwe/Rl3DPI0PPzXKhoXfksfz7xzBiYFs0GmR8LNAoUzmC1pY/o+oMPZtLerOsm7ddV2v28WLbJmzxHJo/xkPjodaHKq6SVECgYAxGLHa5x2CMKijujfW8Vin3UT62g+hvW5anvO5fMF+D4jp7t6iUGO7hrl2yrFhNNrwjjchi02A0bB60tlx8ThfPnIUNdvuYfpprVsjxfUgQ7zzSq1qg650m2ghHRLtnXi34ny20fkc3AypyfRxM7cMUAUrWIBw7nm7H7aBkh+xAQKBgH4Zaxjcn/OsF4QPCJqzf02+zHh7FGGLnsjZXmtVoNDmmFJFXj5ey05jfcNyoRdtffl0Fa/mbkiL1YcAUoBmkyS7MA4mrrM5vG5ZKtLcul1qeC9JrJ2FEcZBmny2fdbfzFFuBdhz0jbOGoDOKl5KWM7EQoxk377DQVRQ884B0Cc+' # 生产环境移动端应用私钥
ALIPAY_PUBLIC_KEY_PRODUCTION_MOBILE = 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAomw6g4rBmCr/QoX3NI3DVLyDpkaUytZ2uFhdfQaegIDAuUfZfgpTCASlAtO82t8ISAbSOSyp9CUpwdGV4EYOiCBbLxMYB6taaHPiIjJ1zNT1EakJzWgU53hz1AVeABB9kdAvMqSvjH6KLoVupmqm4Li8ZwDW9M2ANAmyDfKgiF0Lt4aUUnaZktoCrTWTkpmtfRZCHNACj851IllvN2wyC4OL7dJq5UzOFxmn07Dy/2z4UAhaaSAyRVawpOui5AIYJTXZERLYL3KMyRnMuZoFq3xltzVTzRPM06nRa9RfeVNVwWVtGBIe/r8tcg5wyhI57KUszGNOmUIm/se6G2lnAQIDAQAB' # 生产环境移动端支付宝公钥
ALIPAY_NOTIFY_URL = 'https://www.typeframes.com.cn/api/alipay/notify/'
ALIPAY_RETURN_URL = 'https://www.typeframes.com.cn/user/userinfo/'
# settings.py
# PayPal 配置
PAYPAL_CLIENT_ID_SANDBOX = 'AfwWNEZE92XpbmoHywwdDEXH2x2Elak1Gxbireb5bv-u17OtKiJUuz7CMLnqayAZkqeU2kGtWXHXcXGS'
PAYPAL_SECRET_KEY_SANDBOX = 'ELmuFW7AspHp4km8amEhlM-NB3OGGx_iuqQbntTQ-2RTnJWbxdLTl6xlET1F1ezxSHbU1CUpK0_8ToI3'
PAYPAL_CLIENT_ID_PRODUCTION = 'YOUR_PRODUCTION_CLIENT_ID' # 替换为实际的生产环境客户端ID
PAYPAL_SECRET_KEY_PRODUCTION = 'YOUR_PRODUCTION_SECRET_KEY' # 替换为实际的生产环境密钥
PAYPAL_MODE = 'sandbox' #'sandbox' if DEBUG else 'live' # 根据DEBUG模式选择环境
PAYPAL_RETURN_URL = 'https://www.typeframes.ai/user/plan_list/' # 支付成功后跳转的URL
PAYPAL_CANCEL_URL = 'https://www.typeframes.ai/user/plan_list/' # 支付取消后跳转的URL
PAYPAL_WEBHOOK_ID = '5L31025588094031T' # 替换为你的实际 Webhook ID

27
WebSite/urls.py Executable file
View File

@@ -0,0 +1,27 @@
"""
URL configuration for WebSite project.
The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/5.0/topics/http/urls/
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: path('', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.urls import include, path
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path
from django.urls import path, include
from WebAdmin import views
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('WebAdmin.urls')),
path('.well-known/pki-validation/1ECB936A2BFA886CCCAE51329C4219CF.txt',views.acme_challenge),
path('accounts/', include('allauth.urls')),
path('oauth2callback/', include('allauth.urls')), # 确保回调路径包含在 allauth 的 URL 中
]

16
WebSite/wsgi.py Executable file
View File

@@ -0,0 +1,16 @@
"""
WSGI config for WebSite project.
It exposes the WSGI callable as a module-level variable named ``application``.
For more information on this file, see
https://docs.djangoproject.com/en/5.0/howto/deployment/wsgi/
"""
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "WebSite.settings")
application = get_wsgi_application()