Կա՞ միջոց՝ չպահել սեսիայի ID-ները և նիստի թխուկը web2py-ում՝ յուրաքանչյուր կարգավորիչի մակարդակով: global_settings.web2py_disable_session = True
դա կանի ամբողջ կայքի համար, բայց ես ուզում եմ, որ որոշ էջեր պահպանեն նիստերը:
Web2py-ն անջատել նստաշրջանի թխուկները յուրաքանչյուր վերահսկիչի համար
Պատասխանները:
Եթե ձեզ հարկավոր չէ օգտագործել պարամետրերի վրա հիմնված վերագրման համակարգը, կարող եք անջատել սեսիաները, որոնք հիմնված են երթուղիների վրա՝ օգտագործելով օրինաչափության վրա հիմնված վերագրման համակարգը: routes.py
ֆայլում դուք նման բան կանեիք.
routes_in = [
('/myapp/default/$anything', '/myapp/default/$anything',
dict(web2py_disable_session=True))
]
routes_in
tuple-ի կամընտիր երրորդ տարրը բառարան է, որը կօգտագործվի request.env
-ի թարմացման համար: Վերոնշյալը կավելացնի web2py_disable_session=True
-ը request.env
-ին միայն /myapp/default/
-ով սկսվող երթուղիների համար (մյուս կողմից՝ սահմանելով global_settings.web2py_disable_session=True
-ը, կավելացվի web2py_disable_session=True
-ը request.env
-ին բոլոր հարցումների համար):
Որպես այլընտրանք, դուք կարող եք պարզապես զանգահարել session.forget(response)
ցանկացած կարգավորիչի կամ գործողության մեջ, որը կարիք չունի նիստի (կամ պայմանականորեն մոդելային ֆայլում՝ կախված պահանջվող ուղուց): Եթե նիստի թխուկ կամ ֆայլ դեռ չի ստեղծվել, դա կկանխի դրանց ստեղծումը: Թեև այս մեթոդը ավելի պարզ է, բայց մի փոքր ավելի քիչ արդյունավետ է, քան վերը նշվածը, քանի որ այն դեռ կհանգեցնի նիստի սկզբնականացման կոդը գործարկելու յուրաքանչյուր հարցում:
Վերջին այլընտրանքներից մեկը կլինի WSGI-ի մշակման ֆայլում հատուկ WSGI հավելվածի ֆունկցիա ստեղծելը, որը պայմանականորեն ավելացնում է web2py_disable_session=True
-ը WSGI միջավայրի բառարանին՝ կախված պահանջվող երթուղուց: Այնուհետև փոխանցեք փոփոխված միջավայրի բառարանը gluon.main.wsgibase
ին: