From 66bad82b25b73e8c68b78eeecfcfe1ee5defb1c4 Mon Sep 17 00:00:00 2001 From: ly <3507697506@qq.com> Date: Fri, 17 May 2024 11:53:01 +0800 Subject: [PATCH] mysite --- src/wq/mysite/db.sqlite3 | Bin 0 -> 139264 bytes src/wq/mysite/manage.py | 22 +++ src/wq/mysite/myapp/Login.py | 27 +++ src/wq/mysite/myapp/__init__.py | 0 .../myapp/__pycache__/Login.cpython-311.pyc | Bin 0 -> 1709 bytes .../myapp/__pycache__/Login.cpython-312.pyc | Bin 0 -> 148 bytes .../__pycache__/Register.cpython-311.pyc | Bin 0 -> 2037 bytes .../__pycache__/Register.cpython-312.pyc | Bin 0 -> 151 bytes .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 163 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 151 bytes .../myapp/__pycache__/admin.cpython-312.pyc | Bin 0 -> 195 bytes .../myapp/__pycache__/apps.cpython-312.pyc | Bin 0 -> 455 bytes .../__pycache__/backends.cpython-312.pyc | Bin 0 -> 791 bytes .../__pycache__/middlewares.cpython-311.pyc | Bin 0 -> 3299 bytes .../__pycache__/middlewares.cpython-312.pyc | Bin 0 -> 2997 bytes .../myapp/__pycache__/models.cpython-312.pyc | Bin 0 -> 1583 bytes .../myapp/__pycache__/urls.cpython-312.pyc | Bin 0 -> 443 bytes .../myapp/__pycache__/views.cpython-311.pyc | Bin 0 -> 1883 bytes .../myapp/__pycache__/views.cpython-312.pyc | Bin 0 -> 3010 bytes src/wq/mysite/myapp/admin.py | 3 + src/wq/mysite/myapp/apps.py | 6 + src/wq/mysite/myapp/backends.py | 16 ++ src/wq/mysite/myapp/middlewares.py | 56 ++++++ .../mysite/myapp/migrations/0001_initial.py | 22 +++ .../mysite/myapp/migrations/0002_mytable.py | 24 +++ .../0003_passenger_delete_mytable.py | 28 +++ .../0004_alter_passenger_account.py | 18 ++ ...ardno_alter_passenger_idcardno_and_more.py | 38 ++++ src/wq/mysite/myapp/migrations/__init__.py | 0 .../__pycache__/0001_initial.cpython-312.pyc | Bin 0 -> 894 bytes .../__pycache__/0002_mytable.cpython-312.pyc | Bin 0 -> 1002 bytes ...3_passenger_delete_mytable.cpython-312.pyc | Bin 0 -> 1345 bytes ...04_alter_passenger_account.cpython-312.pyc | Bin 0 -> 768 bytes ...assenger_idcardno_and_more.cpython-312.pyc | Bin 0 -> 1319 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 162 bytes src/wq/mysite/myapp/models.py | 31 ++++ src/wq/mysite/myapp/temphtml/home.html | 7 + src/wq/mysite/myapp/testdb.py | 11 ++ src/wq/mysite/myapp/tests.py | 3 + src/wq/mysite/myapp/urls.py | 9 + src/wq/mysite/myapp/views.py | 75 ++++++++ src/wq/mysite/mysite/__init__.py | 2 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 164 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 242 bytes .../__pycache__/settings.cpython-311.pyc | Bin 0 -> 3060 bytes .../__pycache__/settings.cpython-312.pyc | Bin 0 -> 2955 bytes .../mysite/__pycache__/urls.cpython-311.pyc | Bin 0 -> 1385 bytes .../mysite/__pycache__/urls.cpython-312.pyc | Bin 0 -> 1458 bytes .../mysite/__pycache__/wsgi.cpython-311.pyc | Bin 0 -> 684 bytes .../mysite/__pycache__/wsgi.cpython-312.pyc | Bin 0 -> 638 bytes src/wq/mysite/mysite/asgi.py | 16 ++ src/wq/mysite/mysite/settings.py | 170 ++++++++++++++++++ src/wq/mysite/mysite/urls.py | 38 ++++ src/wq/mysite/mysite/wsgi.py | 16 ++ 54 files changed, 638 insertions(+) create mode 100644 src/wq/mysite/db.sqlite3 create mode 100644 src/wq/mysite/manage.py create mode 100644 src/wq/mysite/myapp/Login.py create mode 100644 src/wq/mysite/myapp/__init__.py create mode 100644 src/wq/mysite/myapp/__pycache__/Login.cpython-311.pyc create mode 100644 src/wq/mysite/myapp/__pycache__/Login.cpython-312.pyc create mode 100644 src/wq/mysite/myapp/__pycache__/Register.cpython-311.pyc create mode 100644 src/wq/mysite/myapp/__pycache__/Register.cpython-312.pyc create mode 100644 src/wq/mysite/myapp/__pycache__/__init__.cpython-311.pyc create mode 100644 src/wq/mysite/myapp/__pycache__/__init__.cpython-312.pyc create mode 100644 src/wq/mysite/myapp/__pycache__/admin.cpython-312.pyc create mode 100644 src/wq/mysite/myapp/__pycache__/apps.cpython-312.pyc create mode 100644 src/wq/mysite/myapp/__pycache__/backends.cpython-312.pyc create mode 100644 src/wq/mysite/myapp/__pycache__/middlewares.cpython-311.pyc create mode 100644 src/wq/mysite/myapp/__pycache__/middlewares.cpython-312.pyc create mode 100644 src/wq/mysite/myapp/__pycache__/models.cpython-312.pyc create mode 100644 src/wq/mysite/myapp/__pycache__/urls.cpython-312.pyc create mode 100644 src/wq/mysite/myapp/__pycache__/views.cpython-311.pyc create mode 100644 src/wq/mysite/myapp/__pycache__/views.cpython-312.pyc create mode 100644 src/wq/mysite/myapp/admin.py create mode 100644 src/wq/mysite/myapp/apps.py create mode 100644 src/wq/mysite/myapp/backends.py create mode 100644 src/wq/mysite/myapp/middlewares.py create mode 100644 src/wq/mysite/myapp/migrations/0001_initial.py create mode 100644 src/wq/mysite/myapp/migrations/0002_mytable.py create mode 100644 src/wq/mysite/myapp/migrations/0003_passenger_delete_mytable.py create mode 100644 src/wq/mysite/myapp/migrations/0004_alter_passenger_account.py create mode 100644 src/wq/mysite/myapp/migrations/0005_alter_passenger_bankcardno_alter_passenger_idcardno_and_more.py create mode 100644 src/wq/mysite/myapp/migrations/__init__.py create mode 100644 src/wq/mysite/myapp/migrations/__pycache__/0001_initial.cpython-312.pyc create mode 100644 src/wq/mysite/myapp/migrations/__pycache__/0002_mytable.cpython-312.pyc create mode 100644 src/wq/mysite/myapp/migrations/__pycache__/0003_passenger_delete_mytable.cpython-312.pyc create mode 100644 src/wq/mysite/myapp/migrations/__pycache__/0004_alter_passenger_account.cpython-312.pyc create mode 100644 src/wq/mysite/myapp/migrations/__pycache__/0005_alter_passenger_bankcardno_alter_passenger_idcardno_and_more.cpython-312.pyc create mode 100644 src/wq/mysite/myapp/migrations/__pycache__/__init__.cpython-312.pyc create mode 100644 src/wq/mysite/myapp/models.py create mode 100644 src/wq/mysite/myapp/temphtml/home.html create mode 100644 src/wq/mysite/myapp/testdb.py create mode 100644 src/wq/mysite/myapp/tests.py create mode 100644 src/wq/mysite/myapp/urls.py create mode 100644 src/wq/mysite/myapp/views.py create mode 100644 src/wq/mysite/mysite/__init__.py create mode 100644 src/wq/mysite/mysite/__pycache__/__init__.cpython-311.pyc create mode 100644 src/wq/mysite/mysite/__pycache__/__init__.cpython-312.pyc create mode 100644 src/wq/mysite/mysite/__pycache__/settings.cpython-311.pyc create mode 100644 src/wq/mysite/mysite/__pycache__/settings.cpython-312.pyc create mode 100644 src/wq/mysite/mysite/__pycache__/urls.cpython-311.pyc create mode 100644 src/wq/mysite/mysite/__pycache__/urls.cpython-312.pyc create mode 100644 src/wq/mysite/mysite/__pycache__/wsgi.cpython-311.pyc create mode 100644 src/wq/mysite/mysite/__pycache__/wsgi.cpython-312.pyc create mode 100644 src/wq/mysite/mysite/asgi.py create mode 100644 src/wq/mysite/mysite/settings.py create mode 100644 src/wq/mysite/mysite/urls.py create mode 100644 src/wq/mysite/mysite/wsgi.py diff --git a/src/wq/mysite/db.sqlite3 b/src/wq/mysite/db.sqlite3 new file mode 100644 index 0000000000000000000000000000000000000000..feb0e00a72745d5f3595425daa4a0cbc41074d67 GIT binary patch literal 139264 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 literal 0 HcmV?d00001 diff --git a/src/wq/mysite/manage.py b/src/wq/mysite/manage.py new file mode 100644 index 00000000..a7da6671 --- /dev/null +++ b/src/wq/mysite/manage.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python +"""Django's command-line utility for administrative tasks.""" +import os +import sys + + +def main(): + """Run administrative tasks.""" + os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings') + try: + from django.core.management import execute_from_command_line + except ImportError as exc: + raise ImportError( + "Couldn't import Django. Are you sure it's installed and " + "available on your PYTHONPATH environment variable? Did you " + "forget to activate a virtual environment?" + ) from exc + execute_from_command_line(sys.argv) + + +if __name__ == '__main__': + main() diff --git a/src/wq/mysite/myapp/Login.py b/src/wq/mysite/myapp/Login.py new file mode 100644 index 00000000..9b7178b6 --- /dev/null +++ b/src/wq/mysite/myapp/Login.py @@ -0,0 +1,27 @@ +# import json # 确保导入了json模块 +# from django.shortcuts import render +# from django.http import JsonResponse +# from django.views.decorators.csrf import csrf_exempt +# from django.http import HttpResponseBadRequest + +# @csrf_exempt # 如果需要跨域且没有CSRF中间件 +# def login(request): +# if request.method == 'POST': +# try: +# # 解析 JSON 数据 +# data = json.loads(request.body) +# account = data.get('account') +# password = data.get('password') +# #因后端数据库还没有实现,先只进行简单的验证 +# if account == '18879439530' and password == 'xiaofan123.': +# return JsonResponse({'message': '登录成功'}) +# else: +# return JsonResponse({'message': '登录失败', 'reason': '账号或密码不正确'}) # 使用JsonResponse并设置状态码 +# except KeyError as e: +# # 如果有任何键不存在,返回400错误 +# return JsonResponse({'message': f'缺少必要的参数: {e}'}, status=400) +# except json.JSONDecodeError: # 添加异常处理来捕获JSON解析错误 +# return JsonResponse({'message': '无效的JSON数据'}, status=400) + +# # 处理非POST请求的情况 +# return JsonResponse({'message': '不支持的请求方法'}, status=405) # 对于非POST请求,返回405状态码 \ No newline at end of file diff --git a/src/wq/mysite/myapp/__init__.py b/src/wq/mysite/myapp/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/src/wq/mysite/myapp/__pycache__/Login.cpython-311.pyc b/src/wq/mysite/myapp/__pycache__/Login.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..760d9e68faa22188192b31112007f711d4fa0632 GIT binary patch literal 1709 zcmZ`(eN0#* z$hM$1DsC=gpw5U<(FGkWE@6H}-TY&JzLNgYyo7{ATkt;&S+e+-=a!aHlHH!3`@83! z^Lyvsd+zy>cIgDij$lj$Y;Zw32 zQNpSWW1C+kgRjdmITX=g=8bvX#9|2q8Djg6}wm%Cf zl=2>fKiTU&ZI~s$Ux|h_!xE8HbyOkPupK#e?AgYn4UNw<9Dd6d3rNbK6h88FL%m@R z$*L+1$x*rm8z29i{&gl3zm$IO^F4<2S2s6reI2a;kIh>P>5D6w_|^2%I~()o|Gqt) z`Tom|FK&2PLJ4S%N>H0ok+S{rQ+oNM^lxu(E}Y-^WGa2}LS|;U$rZQ+)k4cz)g&#d zMg?%q%+6W`TpW&$&m!(y01vNo(> zgCBv98bv`x!m7c)q2Mut8Dy($g5|8iQ)HOQ&gC$8ENK$4 zLI9!H-C$%DE<1A3cK^?d(wsqSu0h%HI6MK5bfi`8K0!n#`qNr;08Rd93@l`?UfUsS)m?4(8g!vIA@nAN zUfrIPEsh32{Cx|uSIkxF?&Eqz^F2dL8ZEx_Mi6_}S{cd7oDLu|>^!M&!P2~q_q{0}v- B)lUEb literal 0 HcmV?d00001 diff --git a/src/wq/mysite/myapp/__pycache__/Login.cpython-312.pyc b/src/wq/mysite/myapp/__pycache__/Login.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..35f1cae25cbfd99de8938264ecf12b6edddcca68 GIT binary patch literal 148 zcmX@j%ge<81Z<1l(r&XdFgylv(7|UGpvZKFN(N0vzm*I{OhDdekeaUsK*HH7CbT%U zs5s{3s}suDpPeecyHlLmzTB7>zy7mdgJz(^n-@l+V~lAaDz5xSSAh^-6j zBKlr^-qwdJB8FZ=-mU<@vDZi;!N42F(KK+(EHR^A6Hf(@$M`q#bbBb(fQ2Dmz+hQB zC2?r4AVtL?Nr17XU&2QY3nM}#D#OsRTb83s(`_8TS2z|EB)Okj=0*q-K|1(9-Ulfp z&=?wAp5&>c`Lre|Txmu!K^5EJQo01c?4JhSnPu)1)EJf0FGZ~EdAbZquZq-_A$6-F z^<_x?s>q5mWW^ZG8w#0Xc1*_`i*}7{dA4fa#G6A@X=DIFWaWxT%PNu9|3{W^SMk-n z?Mm6M1dt2K)@LhlBkVk3D2X%i_A$d}=yN(m@ipJoPQ$6pET2q2eF#eKgyEziQ0#{( zd3hG0LE{oPFgqwz#>}k789>8mM0W@QTj~C+frz^DRY2i7x>fz2p1?j;Kg2}@)ez$S z9OhNyo}f4+bc?Df%1P3&i1`?)#YY!D%FTYD)^7HBx3)C5c)dPvtGA_fOS4ZkMg&RX z285W6;4WRu#b>qIA9A;^X=l&nV;9a`*6y5DYkjRPTf8k0+XA}T*V^11BO6&j=He6D zhhMC4XkXu2`0<RtRDP?|I&@zITF8cV>Wl|Oz!eex!Y5rDZ*h=4G}>OioB{HgommXVUgn{ zRsW92kE*%>LB`~csirrD(bq5*v1%jq?LxoE3wejfs2XwM;;VX|lR0dL08CzGm>eJ` zTcc8fMC!p=Xit1#`?vMIEeTlaD;!B*yC5Bv#c1E~vA)Qt6p{t#xM;L*uP_jjWC1rt zM^)Q#E*ye~2!}&_Kb$gt9*79B^e!ZG3Oz7ZkDp9B=8O$#W5Xg{Yu-a?40~x?a^Olh z%`|41#&~;{VG~;?wkHiIK^XRAriN%&?8|-4E<*lBPMkQ?WZ!`<0jda~u512LC+kN*z+XyA*d@n)PQ` zzhd`iZOp{ToUK8zHKaO}rnWhE8%*bsH>(x*jx@V7!|qh|< zS*hm>WV;k++kKzH^rV@d4AY}ni?XOA0TBPhgsk<+wTgSYQorNAPO)^QEnOK)m!j{I zyl@5=+RT0<`lEh5(OYUj-!oRWuhHGBsq=5r-Ft~5_NEP>|73{mF=JAKLkdF*V-7mQTYM>5iFxVyddc~DB}JJ@Ma)12D;Yk6)O|Go63$jJp~b01#W62ewLM$k z8sm~$oL!P%5K~?llUrGwS&|B*5(^4qzy|6SRQ}?y$<0qG%}KQ@;s9!A1ma>4;{!7z NBjY^=g(5Z}2LQ`9G4TKZ literal 0 HcmV?d00001 diff --git a/src/wq/mysite/myapp/__pycache__/apps.cpython-312.pyc b/src/wq/mysite/myapp/__pycache__/apps.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8657803800bd04ff1e7c382b5e2100b875c6a987 GIT binary patch literal 455 zcmXv~y-UMT5WklXsr?YCA~-m>2wCDPR)pH3i*|Dffk*VclxWhV`9R_(RA&dFe}g*s zhqySFfRi9}6KWSH?B91Oz1kQgy!CK*a9 zYf4r-ORa_Yc8gtEgTAk`3*GY>cO(7C>9>>EKX$mwGSw5cJx$FjlnyM9Q<_yN#nQwT zyiVybvD`A#WZbqAH>MUgpmyFt5xHlWiI2^95jy+kdBnrWoW4AKzulW%9$m+NVBQQ( zFO8g-qr*2%Jdqxxp;%K63X-USFoMbE-iNX=sWtDqp}5KOJx$JP1%H5=gZ>2XUMgP7KtZqwy%nPfLcurLB=}(8`{vDi-_Cq*K2J?e0^0tkYb&oQ zz<0eEnK=ag(+DoU&Nv^Dh%)+yw#~@I{OI2xlfwpxjNY)iZAI2o8d*zt z>m{&_f--O4T3WWLO1hpGG;30&>aGy$LC9<~)aOu%DwpMeg(+NwT1PvfOu_w?a6)Ia z<|-M+ny9oFa>i@2;`&0FO~FHvz=D$l`+XMSm2;)LI$hd*|NO^?XQiuLtjVBWT5pu9 zEm4sigIlkc?#JSYe7&VIZc~;utLIAoI6GD@|9{>>a&ZCO6WEzK{_<2exs^N7O};qr zZO;Dq=u7reH@%mDqw|=`>`dogEqtAx>zZ4$$2Mmdx^gph=It`NJ`#XU3k4ie%5iFL zl{=1_bew9yn!d&v$7wWOKi&xsVfi}8ogbxEtO^u z+}di8FXMxXbxsfNo!5^^40MjEvYKy9|2K6$KFGx|hZ}mV;t0AugAlR}^V=}@$IOt$ JpMY-A_77lLzN`QM literal 0 HcmV?d00001 diff --git a/src/wq/mysite/myapp/__pycache__/middlewares.cpython-311.pyc b/src/wq/mysite/myapp/__pycache__/middlewares.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9d35ddca0db5e66b3181bcb2be8a04e4690b8987 GIT binary patch literal 3299 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 literal 0 HcmV?d00001 diff --git a/src/wq/mysite/myapp/__pycache__/models.cpython-312.pyc b/src/wq/mysite/myapp/__pycache__/models.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5e19620d210864f4e4dabbdd3c0a4f314e6723c2 GIT binary patch literal 1583 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 literal 0 HcmV?d00001 diff --git a/src/wq/mysite/myapp/admin.py b/src/wq/mysite/myapp/admin.py new file mode 100644 index 00000000..8c38f3f3 --- /dev/null +++ b/src/wq/mysite/myapp/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/src/wq/mysite/myapp/apps.py b/src/wq/mysite/myapp/apps.py new file mode 100644 index 00000000..c34fb20e --- /dev/null +++ b/src/wq/mysite/myapp/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class MyappConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'myapp' diff --git a/src/wq/mysite/myapp/backends.py b/src/wq/mysite/myapp/backends.py new file mode 100644 index 00000000..0a4b3648 --- /dev/null +++ b/src/wq/mysite/myapp/backends.py @@ -0,0 +1,16 @@ +from django.http import HttpRequest +from myapp.views import login_view + +class MyBackend: + def authenticate(self, account=None, password=None): + # 创建一个虚拟的HttpRequest对象 + request = HttpRequest() + request.method = 'POST' # 设置请求方法为POST,以便符合login_view()函数的期望 + + credentials = {'account': account, 'password': password} + + # 将credentials作为POST数据传递给虚拟的HttpRequest对象 + request.POST = credentials + + user = login_view(request) # 调用login_view()函数来处理身份验证 + return user if user is not None else None \ No newline at end of file diff --git a/src/wq/mysite/myapp/middlewares.py b/src/wq/mysite/myapp/middlewares.py new file mode 100644 index 00000000..d6e175b6 --- /dev/null +++ b/src/wq/mysite/myapp/middlewares.py @@ -0,0 +1,56 @@ +class CorsMiddleware(object): + """中间件:跨域访问""" + def __init__(self, get_response): + self.get_response = get_response + + # 你可以在这里定义默认允许的跨域方法、头部等 + self.allowed_origins = ['*'] # 可以是具体的域名列表,如 ['http://example.com', 'http://localhost:5173'] + self.allowed_methods = ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS'] + self.allowed_headers = ['Content-Type', 'Authorization', 'X-Requested-With'] + self.allow_credentials = True # 如果允许携带凭据(如cookies),则设置为True + + def __call__(self, request): + response = self.get_response(request) + # 对于CORS预检请求(OPTIONS),可以在这里直接返回响应 + if request.method == 'OPTIONS': + response = self.process_options(request, response) + else: + response = self.process_response(request, response) + return response + + def process_options(self, request, response): + # 处理CORS预检请求 + if 'HTTP_ACCESS_CONTROL_REQUEST_METHOD' in request.META: + response['Access-Control-Allow-Methods'] = ', '.join(self.allowed_methods) + if 'HTTP_ACCESS_CONTROL_REQUEST_HEADERS' in request.META: + allowed_headers = request.META['HTTP_ACCESS_CONTROL_REQUEST_HEADERS'].split(',') + allowed_headers = [x.strip() for x in allowed_headers] + response['Access-Control-Allow-Headers'] = ', '.join( + set(allowed_headers).intersection(self.allowed_headers) + ) + response['Access-Control-Allow-Origin'] = self.get_origin(request) + if self.allow_credentials: + response['Access-Control-Allow-Credentials'] = 'true' + response['Access-Control-Max-Age'] = 86400 # 预检请求的缓存时间,单位:秒 + return response + + def process_response(self, request, response): + # 处理其他类型的响应 + response['Access-Control-Allow-Origin'] = self.get_origin(request) + if self.allow_credentials: + response['Access-Control-Allow-Credentials'] = 'true' + return response + + def get_origin(self, request): + # 获取允许的来源 + origin = request.META.get('HTTP_ORIGIN') + if origin in self.allowed_origins or '*' in self.allowed_origins: + return origin + return '' + +# 在Django的settings.py中,将CorsMiddleware添加到MIDDLEWARE中 +MIDDLEWARE = [ + # ... + 'path.to.CorsMiddleware', # 替换为CorsMiddleware所在的完整路径 + # ... +] \ No newline at end of file diff --git a/src/wq/mysite/myapp/migrations/0001_initial.py b/src/wq/mysite/myapp/migrations/0001_initial.py new file mode 100644 index 00000000..5206e44e --- /dev/null +++ b/src/wq/mysite/myapp/migrations/0001_initial.py @@ -0,0 +1,22 @@ +# Generated by Django 5.0.4 on 2024-05-16 02:08 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='mod', + fields=[ + ('id', models.AutoField(primary_key=True, serialize=False)), + ('user', models.CharField(max_length=255)), + ('password', models.IntegerField()), + ], + ), + ] diff --git a/src/wq/mysite/myapp/migrations/0002_mytable.py b/src/wq/mysite/myapp/migrations/0002_mytable.py new file mode 100644 index 00000000..4c2de205 --- /dev/null +++ b/src/wq/mysite/myapp/migrations/0002_mytable.py @@ -0,0 +1,24 @@ +# Generated by Django 5.0.4 on 2024-05-16 03:36 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('myapp', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='MyTable', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('field1', models.CharField(max_length=100)), + ('field2', models.IntegerField()), + ], + options={ + 'db_table': 'my_table', + }, + ), + ] diff --git a/src/wq/mysite/myapp/migrations/0003_passenger_delete_mytable.py b/src/wq/mysite/myapp/migrations/0003_passenger_delete_mytable.py new file mode 100644 index 00000000..eecaa14e --- /dev/null +++ b/src/wq/mysite/myapp/migrations/0003_passenger_delete_mytable.py @@ -0,0 +1,28 @@ +# Generated by Django 5.0.4 on 2024-05-16 16:58 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('myapp', '0002_mytable'), + ] + + operations = [ + migrations.CreateModel( + name='Passenger', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=100)), + ('account', models.CharField(max_length=100)), + ('password', models.CharField(max_length=100)), + ('mobileno', models.CharField(max_length=20)), + ('bankcardno', models.CharField(max_length=100)), + ('idcardno', models.CharField(max_length=100)), + ], + ), + migrations.DeleteModel( + name='MyTable', + ), + ] diff --git a/src/wq/mysite/myapp/migrations/0004_alter_passenger_account.py b/src/wq/mysite/myapp/migrations/0004_alter_passenger_account.py new file mode 100644 index 00000000..6ca055f0 --- /dev/null +++ b/src/wq/mysite/myapp/migrations/0004_alter_passenger_account.py @@ -0,0 +1,18 @@ +# Generated by Django 5.0.4 on 2024-05-16 18:05 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('myapp', '0003_passenger_delete_mytable'), + ] + + operations = [ + migrations.AlterField( + model_name='passenger', + name='account', + field=models.CharField(max_length=100, null=True), + ), + ] diff --git a/src/wq/mysite/myapp/migrations/0005_alter_passenger_bankcardno_alter_passenger_idcardno_and_more.py b/src/wq/mysite/myapp/migrations/0005_alter_passenger_bankcardno_alter_passenger_idcardno_and_more.py new file mode 100644 index 00000000..dd33fab7 --- /dev/null +++ b/src/wq/mysite/myapp/migrations/0005_alter_passenger_bankcardno_alter_passenger_idcardno_and_more.py @@ -0,0 +1,38 @@ +# Generated by Django 5.0.4 on 2024-05-16 18:07 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('myapp', '0004_alter_passenger_account'), + ] + + operations = [ + migrations.AlterField( + model_name='passenger', + name='bankcardno', + field=models.CharField(max_length=100, null=True), + ), + migrations.AlterField( + model_name='passenger', + name='idcardno', + field=models.CharField(max_length=100, null=True), + ), + migrations.AlterField( + model_name='passenger', + name='mobileno', + field=models.CharField(max_length=20, null=True), + ), + migrations.AlterField( + model_name='passenger', + name='name', + field=models.CharField(max_length=100, null=True), + ), + migrations.AlterField( + model_name='passenger', + name='password', + field=models.CharField(max_length=100, null=True), + ), + ] diff --git a/src/wq/mysite/myapp/migrations/__init__.py b/src/wq/mysite/myapp/migrations/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/src/wq/mysite/myapp/migrations/__pycache__/0001_initial.cpython-312.pyc b/src/wq/mysite/myapp/migrations/__pycache__/0001_initial.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cf9ab7c04a0b8a18ea6b55304ada05b7c42513d2 GIT binary patch literal 894 zcmZuv%S+rq7@tY9*(AG4R;*9)=<05>DOTAQr{vBkQJ7eAEHf}7 z%X7n+cRYmcaQ!L<03jpi-w40CCVQPZJ26^pP2ZKUiV0GJ5$velRcCMFPl&;v{#YJ7;Y8rNC$y=@!kt}f$VIR8)yXzJX1G<^G zFdtwe!mD%#0Y^3B!)D|y(FCzLzhML^EIxK4Y~qYbo{zKreFo=r4wsLJn4i^NkS0Ry z?8}GWU*BsBINXdpU)$c&oK|Q>m|TYMYggOXYPH%OJ*#iVZw2%VC4z!*i-=utIy|zo z+~?pZzw@*&0CDn@)DtGU!o*2w?6h>NQ=Z;?-78Ob%hN{--xrU|D;@dCNvYhaCr?ku~2( literal 0 HcmV?d00001 diff --git a/src/wq/mysite/myapp/migrations/__pycache__/0002_mytable.cpython-312.pyc b/src/wq/mysite/myapp/migrations/__pycache__/0002_mytable.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2a594277b9f1f8c981e9cb6acb5974ae806898f0 GIT binary patch literal 1002 zcmZuv&ubGw6rS1LY_gkenv|BHkqR{k+d@ct@Svq&TPv-$r+Nv2VUwApo9?gfZma7> z#VQ^P9@>9FQ_!Oa{{X>Df`ybh34+jDpe=$YXE%v0=q$YX-kb03eDA&aIy58$wjMmY zS9{9=@FR2vE7k|6a}4YQ3@|i+2}{uAN*n|nxDPP53ouV$LmVVs>`lIhOMD=xv6IkI zIVzia-PL^Ewmd4DHYSEwy~qI|lEVV0pPAVQ1e72KB@V+nEb$y5LSw+Vl!ZAQo{5dr zrC=XofqgM79>$wOFI3}jB4Vfi!yzOETGz8b7+6@ySt$LmX!TV7NJs%YE3jjArue1d7x zadlI31GGs3DtW|ZdHPdAl^x<%Y>yyIGYJ)IIx+C{31+%f$hxdOK?bqv{zm_3h9+Otv=BxM?OfqouGmUXcjLlns;huZ?qG#oHI_OX zmL<8%D70=Pi80j8@Bw53TrDI=PLOzjPgbm#^o*|N2MY!a+ zNV9bdkvP-4kOrl4bWZfAnn@q_7DN5mR+w&q|+M9V1|^w`<$rFG+=~O9Uw{3K&=m`U*;MER|DnRcKS?^9bTVqW{2z9 z;jLIBdm~V8Zl})%xsmlJ&D=;mH?noAk-Hfv6GwJ?8o7v@3-Y7utIhmqJwLiN-pJny zl-ozR2QRd`#on&{L{gGlrw_$`Wq}@b(|c)J*UI literal 0 HcmV?d00001 diff --git a/src/wq/mysite/myapp/migrations/__pycache__/0004_alter_passenger_account.cpython-312.pyc b/src/wq/mysite/myapp/migrations/__pycache__/0004_alter_passenger_account.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5f4c1f0cae4b9c837fc6b6c80ad77b71a4bde9ce GIT binary patch literal 768 zcmY*X&ubGw6n?Y2+3YT@)J0H>@eqozmlCKa(TY?m6zxIuvMdaf%rs5hU)|lHdsC?5 zvA6yU)fT+^KX?iV340a9+yZG4Jo#pmm^z0y-}mOddGC8O-J+5t12M0ZrSkV6u>sPJkz^Z{`X79HC{Q>PnGG( zS#{nP-e=^7V;1JKc}Lh@CCFJE7qv#Cu|Z>&rXp;MgkqZ_6Ew&(*7QYT{yQnEtksHo zVK(Ae;6*8ry`es)W&4E|_I%$_QM43FLly}1Nn6?L2%qm_d4raIN(+lpjO+OV@e-v6 zJ?6_;$+(C`$VJ%dh%}LNEv!d=CX#J=OQK1KxwX%xys)BJ%x3%vCQ|stb2MA`yqBp+ zQg8J6!_P18y~iSbl|`}l`oIhFw37+kP`tNzArHrJmoi!D(lBO<*W)~q&t4h{(uZgc zVXT9>F;%C%Fyj_S^WlfndFOw7O0d zguV;VU%395T>3~ZX$9{Yk%r(9WFSAW_6; z78e(9ImAm@>_j9T`&q)`#O{20^W*bt`#wuH(=f8Pw`{+WxG94Vl*t~Cdc4cWwefhX+Abs|&(b9@dt=OI}wXYQ0h0^ZzR-x1^ zls;6xDhGwTM`Ma^3|n5im}U7(dQeyz!8v^~&eL(;xLQzOJ&cR}%-2kX>$FCKYPdkl zSqHPO^=dOC%re_q(0*%6y)jsh=K#VF1|`CxD`Sj*sR)}#>Ks;gjn?FRb8`L|0m!`n E0GaAEmH+?% literal 0 HcmV?d00001 diff --git a/src/wq/mysite/myapp/migrations/__pycache__/__init__.cpython-312.pyc b/src/wq/mysite/myapp/migrations/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d988bf31db3510815dde861546b4f99774bfa127 GIT binary patch literal 162 zcmX@j%ge<81U}Z*X(0MBh(HIQS%4zb87dhx8U0o=6fpsLpFwKA+5rh?tC-N@)S}{; zm#f;It#6HSNiEJU$uEd0FO12pEY2)R1yYFx1u?mq=|zbpnfZCeG4b)4d6^~g@p=W7 hzc_4i^HWN5QtgUZfrc>xaWRPTk(rT^v4|PS0szvBDa8N) literal 0 HcmV?d00001 diff --git a/src/wq/mysite/myapp/models.py b/src/wq/mysite/myapp/models.py new file mode 100644 index 00000000..20f1ae31 --- /dev/null +++ b/src/wq/mysite/myapp/models.py @@ -0,0 +1,31 @@ +from django.db import models + +class mod(models.Model): + id = models.AutoField(primary_key=True) + user= models.CharField(max_length=255) + password= models.IntegerField() + + # 数据输出样式 + def __str__(self): + return f"['id': {self.id}, 'user': {self.user}, 'password': {self.password}]" + + class Meta: + db_table = 'us_pass' + # 指定数据表名,可以是需要新建表的表名 + # 也可以是数据库中已存在的表 + # 但变量名需要和数据库中保持一致。 + + +from django.db import models + +class Passenger(models.Model): + name = models.CharField(max_length=100, null=True) + account = models.CharField(max_length=100, null=True) + password = models.CharField(max_length=100, null=True) + mobileno = models.CharField(max_length=20, null=True) + bankcardno = models.CharField(max_length=100, null=True) + idcardno = models.CharField(max_length=100, null=True) + # 添加更多字段... + + # def __str__(self): + # return self.name \ No newline at end of file diff --git a/src/wq/mysite/myapp/temphtml/home.html b/src/wq/mysite/myapp/temphtml/home.html new file mode 100644 index 00000000..6c55d8c1 --- /dev/null +++ b/src/wq/mysite/myapp/temphtml/home.html @@ -0,0 +1,7 @@ +
+ + {% csrf_token %} + name:
+ password:
+ +
\ No newline at end of file diff --git a/src/wq/mysite/myapp/testdb.py b/src/wq/mysite/myapp/testdb.py new file mode 100644 index 00000000..23d08f4f --- /dev/null +++ b/src/wq/mysite/myapp/testdb.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- + +from django.http import HttpResponse + +from TestModel.models import Test + +# 数据库操作 +def testdb(request): + test1 = Test(name='runoob') + test1.save() + return HttpResponse("

数据添加成功!

") \ No newline at end of file diff --git a/src/wq/mysite/myapp/tests.py b/src/wq/mysite/myapp/tests.py new file mode 100644 index 00000000..7ce503c2 --- /dev/null +++ b/src/wq/mysite/myapp/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/src/wq/mysite/myapp/urls.py b/src/wq/mysite/myapp/urls.py new file mode 100644 index 00000000..42c186f6 --- /dev/null +++ b/src/wq/mysite/myapp/urls.py @@ -0,0 +1,9 @@ +# passengers/urls.py +from django.urls import path +from . import views +# from myapp.views import save_passenger + +urlpatterns = [ + path('save-passenger/', views.save_passenger, name='save_passenger'), + path('login/', views.login_view, name='login'), +] \ No newline at end of file diff --git a/src/wq/mysite/myapp/views.py b/src/wq/mysite/myapp/views.py new file mode 100644 index 00000000..202c1a83 --- /dev/null +++ b/src/wq/mysite/myapp/views.py @@ -0,0 +1,75 @@ +# myapp/views.py +from django.views.decorators.csrf import csrf_exempt +from django.http import HttpResponseBadRequest +from django.http import HttpResponse +from django.contrib.auth import authenticate, login +# from django.contrib.auth.models import User +from django.shortcuts import render +from .models import Passenger +import json # 确保导入了json模块 +from django.http import JsonResponse +from myapp.models import Passenger +@csrf_exempt # 如果需要跨域且没有CSRF中间件 +def save_passenger(request): + if request.method == 'POST': + try: + # 解析 JSON 数据 + data = json.loads(request.body) + name = data.get('name') + account = data.get('PhoneNO') + idcardno = data.get('idCard') + mobileno = data.get('PhoneNO') + password = data.get('password') + bankcardno = data.get('Bankcard') + + # 创建Passenger对象并保存到数据库 + passenger = Passenger( + name=name, + account=account, + password=password, + mobileno=mobileno, + bankcardno=bankcardno, + idcardno=idcardno + ) + passenger.save() + + return JsonResponse({'message': '注册成功'}) + # else: + # return JsonResponse({'message': '注册失败', 'reason': '姓名或身份证号不正确'}) # 使用JsonResponse并设置状态码 + except KeyError as e: + # 如果有任何键不存在,返回400错误 + return JsonResponse({'message': f'缺少必要的参数: {e}'}, status=400) + except json.JSONDecodeError: # 添加异常处理来捕获JSON解析错误 + return JsonResponse({'message': '无效的JSON数据'}, status=400) + + # 处理非POST请求的情况 + return JsonResponse({'message': '不支持的请求方法'}, status=405) # 对于非POST请求,返回405状态码 + + +def login_view(request): + if request.method == 'POST': + try: + # 解析 JSON 数据 + data = json.loads(request.body) + account = data.get('account') + password = data.get('password') + # 查询 passenger 表,查找匹配的账号和密码 + # passenger = Passenger.objects.filter(account=account, password=password).first() + passenger = Passenger.objects.get(account=account, password=password) + if passenger is not None: + # user = authenticate(request, account=passenger.account, password=passenger.password) + # if user is not None: + # login(request, user) + return JsonResponse({'message': '登录成功'}) + else : + return JsonResponse({'message': '登录失败', 'reason': '账号或密码不正确'}) # 使用JsonResponse并设置状态码 + # else: + # return JsonResponse({'message': '登录失败', 'reason': '账号或密码不正确'}) # 使用JsonResponse并设置状态码 + except KeyError as e: + # 如果有任何键不存在,返回400错误 + return JsonResponse({'message': f'缺少必要的参数: {e}'}, status=400) + except json.JSONDecodeError: # 添加异常处理来捕获JSON解析错误 + return JsonResponse({'message': '无效的JSON数据'}, status=400) + + # 处理非POST请求的情况 + return JsonResponse({'message': '不支持的请求方法'}, status=405) diff --git a/src/wq/mysite/mysite/__init__.py b/src/wq/mysite/mysite/__init__.py new file mode 100644 index 00000000..c45523b2 --- /dev/null +++ b/src/wq/mysite/mysite/__init__.py @@ -0,0 +1,2 @@ +import pymysql +pymysql.install_as_MySQLdb() \ No newline at end of file diff --git a/src/wq/mysite/mysite/__pycache__/__init__.cpython-311.pyc b/src/wq/mysite/mysite/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a09b5cf9b8c4cd4fc701b9703a987ac9bf582bed GIT binary patch literal 164 zcmZ3^%ge<81oy10(?IlN5CH>>P{wCAAY(d13PUi1CZpdBwu%WY zPAw{qdEVFkYh7^Vr#vFzy1}277hAfyIOf8UJ4P`Sj zR5EHZy#(?6G?{L(7gXj}78mB+63WagE=kPEiBBw!_pJ;L^hrrt$?zGZ?5hcoaJGsG zElw>ej(NGN?b-U)7?;%I?2`O~nDW9Hp#IE~R2UT>pP83g5+AQuQ2C3)CO1E&G$+-r phy!Q@BM=vh0f`UHjEs!88Tf86NHwruXOOzcAa#{NricwF1pwVfJDdOj literal 0 HcmV?d00001 diff --git a/src/wq/mysite/mysite/__pycache__/settings.cpython-311.pyc b/src/wq/mysite/mysite/__pycache__/settings.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4cd5b419b84351801643a6f2c3240bd08379e050 GIT binary patch literal 3060 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 X)HGlQmrnyXdqMv--)m~#^pgKSCsx>G literal 0 HcmV?d00001 diff --git a/src/wq/mysite/mysite/__pycache__/urls.cpython-311.pyc b/src/wq/mysite/mysite/__pycache__/urls.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..96efdd5c9bfe65ed18a3451146372ae971415a65 GIT binary patch literal 1385 zcmb7E&x;c~9M4SCc6REzf{3C#i1?s8usfr|Ug|Hzeewj|gFjG8p*!28?bMmcm`qo9 zLD-vuARYwu=E;ZX-K&2>7xqx*`oPD#6~v2P{3h){cTvzZ$t2%=^7($g-z5EKcGgBv zUag;Ne=8vLubSkgJQ;lc2!j`hqB^1mHA5pZ>!zW`g|HCeI*y9t$^( z!q}=?1~L)Dw8YHbOzxzo{j1p<6QOs|#ziB`tlX>Q7HYkpc>@~XL7T$Z%AoAtne`t6xqa*URnp>dJLvR@u?27h&S3 zDHE|=C1D^_B6vS#k^qS$DJSazyDwdGSut?INDu>AG^R~L=1WE-V>O#V>85ESYo14W zOS-h@#~q%#Yw^fqvA5)&^irM#E$Jz+2kxb3|MkF+fJ@fw%l){e6>GPe^ps03QcC=o z1X038S|g+_cm(k@{Un(f$1*kk^aQUWPytLu2wNf8?tHbnFo~Qq%Ak3xj${9? zuBl^WMW04N?3fu=8PCcSG^|+HSqJVJ6AE>ecY=7cq`}_ifptF&sGqWCKwG|`UN*PK z0(-DJt<4fR4Pq}V>hFrPKPxwzaPOMUZ2u%w$WSVRHKE>8R+)-lV6cdyG8dx_I6F~N z2K8T%Vf9EdtkNVbWmRuCt4v*@x9BsN(3g|YU8*&1NhW0Dzo$<=eR$MZX7Vmv@5cRm zjq!8KKZ?&yHojVCBToAvJ1-8wb_1IH2;Hb)7{5)yuLlai`#f{2QQAwc+T9asGm3pL3{_SRGU5k literal 0 HcmV?d00001 diff --git a/src/wq/mysite/mysite/__pycache__/urls.cpython-312.pyc b/src/wq/mysite/mysite/__pycache__/urls.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..16eb1b7dc878dc719658f8e84efa663c37d3de0a GIT binary patch literal 1458 zcmb7E-;2~n9G~Qp-E4Aq>yKIwxx!S%-N2cg1re5OrC6^D(g)F(u(0Mfv%A?QnK+YG zZ)u@ESbXd~-Tet|ui_ul7v%(L;AlY*d{Pl#eDXW93A+k~c35UUJM*2-_w)TsX8v4Q zFcGwu57v9TIzrFHpR&~o@Mc~?Xd4B{LxB>gkrJz(st7z6&BdCh#k!}<|FdgaREeuz zRnF^x4bPCc64heUGbOG9wmb{4;mxavXhDsr!(*j@={Q`T;u7tu6D0SU#29{3u1v?k z`eS}~ZYFL4;y#_Omnc~LD6S5ydT?MDDi^KH)z`fG=0W?A|05(fuV1}_yEN&A{SouC zkS4fC8ICu3m=T;ZIwal9G0kfOf^Upil=@jlSi*1MDC8Mtbd(W}frR6X;#(oP%^kch z7$_q+On@w&(54abIl-KemWiPavMl8-*9~ZwJHgOT`m{{frLjvA_pGz(W;6}E+!ett zr01@A@s1w@7jK#CqogYp%e0d8jDx=p0_-O^j8n?87REhBW2mR&r)e=cktyT9DB?v0 zqJWtSVJj3nXf_%vMO_0LlNFr!G5N9~aKkn)L_X)IH=wX!hV|c6&}=}M5aLM1rJPH^ z^?%fec*o}*LDIB8Qgk`#Mx!81`e1_0CrT3sT>5ia8iPR!9FK@4O&j+LD_ax0Cdc6j z!%LAx?20tyKdaq{Xx{|`%S;V1A$c3NZN3nnrLE+;AH-o|tGOl|&#OhWSh+&`umV6j z24Io=h0F0VdbUVU`#+b7zkzcl0iXFK}S krRL+M=C40I(bkH+TjzGx_6|4qH2c-TT3x+su_KWFJ=~?B=Kufz literal 0 HcmV?d00001 diff --git a/src/wq/mysite/mysite/__pycache__/wsgi.cpython-311.pyc b/src/wq/mysite/mysite/__pycache__/wsgi.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..97ecce4b7274a98bf1aaf1c02d501f2fd09e0d03 GIT binary patch literal 684 zcmY*XL2DC16n?XtHoCP@#P&RtUIMxs4_=}Ojj17`=^-sj2yE8fmt^DY&bl*AOiw)s z9t3aV)l)_K1NPKpE zJWoMu+0&X(Tt4_>JZ{$N)a7B<@6j%gX)qSPL>k3>fUYzRqb@1Fh`2yOWglsF-eJsn z%8)vOIyB(kKEoRfhsfyAiT(4f&^RUxVc=uBh9wYTb#TT4!P#!99 zU(l}4@H!QUMqkQElr78St}wlU6ZZIAlgk4OL+h4Vvif`^x#eNR_&C5&S|ic(E#p^u z(?*db*Lo=JG-of!NY<+lwi>k^yScr)TW{2w_M@HZ-ox#K%h}~kfl~TmPZaY>-nNwj z+fFntk}H`G(^c}#6gAcrPm;%Q=*K)v3{~i1*V$(>Sy>?b2xqCF-zDYlmD_s)W6}Qk z=Jk(Hui8}<&m@o9qv!36eI8PLGaCQ7a3_1;yKzC4tB(WXiE=ZY5Hi#9BsYW9T?Jws zUQF8*ZchI1Q_x--Ut#SttWDOp2C9rz(!hCm?YG=xCf4ODUAgtIK#eDM38pWpX=&+^BW6$hDh)VMQzgAw|XCB-V8 zg2j#jZxKa3L@~8E?qL&cZbf#_#t86axoA0ylgb$`5G~OQ2Ueb8WFfE*PD{O|xm8=* z`|3RHw%R0=V#r2hC=(LR71KcCL{1>ouH&>dffunNq0Hi z