from flask import - From flask import Flask app = Flask

|
From flask import Flask app = Flask
|
bet | 12/13 | Sana | 30.07.2024 | Hajmi | 252,31 Kb. | | #268934 |
Bog'liq Flask notesfrom flask import session
# Set the secret key to some random bytes. Keep this really secret!
app.secret_key = b'_5#y2L"F4Q8z\n\xec]/'
@app.route('/')
def index():
if 'username' in session:
return f'Logged in as {session["username"]}'
return 'You are not logged in'
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
session['username'] = request.form['username']
return redirect(url_for('index'))
return '''
'''
@app.route('/logout')
def logout():
# remove the username from the session if it's there
session.pop('username', None)
return redirect(url_for('index'))
Yaxshi maxfiy kalitlarni qanday yaratish mumkin
Yashirin kalit imkon qadar tasodifiy bo'lishi kerak. Sizning operatsion tizimingizda kriptografik tasodifiy generator asosida juda tasodifiy ma'lumotlarni yaratish usullari mavjud. Flask.secret_key(yoki ) qiymatini tezda yaratish uchun quyidagi buyruqdan foydalaning SECRET_KEY:
$ python -c 'import secrets; print(secrets.token_hex())'
'192b9bdd22ab9ed4d12e236c78afcb9a393ec15f71bbf5dc987d54727823bcbf'
Cookie-ga asoslangan seanslar haqida eslatma: Flask siz sessiya ob'ektiga qo'ygan qiymatlarni oladi va ularni cookie fayliga seriyalashtiradi. Agar ba'zi qiymatlar so'rovlar davomida saqlanib qolmasligini aniqlasangiz, cookie-fayllar haqiqatan ham yoqilgan va aniq xato xabari olmagan bo'lsangiz, veb-brauzerlar tomonidan qo'llab-quvvatlanadigan o'lcham bilan solishtirganda sahifangizdagi javoblardagi cookie hajmini tekshiring.
Standart mijozga asoslangan seanslardan tashqari, agar siz server tomonidagi seanslarni boshqarishni istasangiz, buni qo'llab-quvvatlaydigan bir nechta Flask kengaytmalari mavjud.
Xabar miltillashi
Yaxshi ilovalar va foydalanuvchi interfeyslari fikr-mulohazalarga bog'liq. Agar foydalanuvchi yetarlicha fikr-mulohaza ololmasa, ular dasturdan nafratlanishi mumkin. Flask miltillovchi tizim bilan foydalanuvchiga fikr bildirishning juda oddiy usulini taqdim etadi. Miltillovchi tizim asosan so'rov oxirida xabarni yozib olish va unga keyingi (va faqat keyingi) so'rovda kirish imkonini beradi. Bu odatda xabarni ochish uchun tartib shabloni bilan birlashtiriladi.
Xabarni miltillash uchun , shablonlarda ham mavjud bo'lgan flash()xabarlarni ushlab turish usulidan foydalaning . To'liq misol uchun Xabarning miltillashigaget_flashed_messages() qarang .
Jurnal
O'zgarishlar jurnali
Ba'zan siz to'g'ri bo'lishi kerak bo'lgan ma'lumotlar bilan shug'ullanadigan vaziyatga tushib qolishingiz mumkin, lekin aslida unday emas. Misol uchun, sizda serverga HTTP so'rovini yuboradigan ba'zi mijoz kodlari bo'lishi mumkin, lekin u noto'g'ri tuzilganligi aniq. Buning sababi foydalanuvchining ma'lumotlarni buzishi yoki mijoz kodi ishlamay qolishi mumkin. Ko'pincha bunday vaziyatda javob berish ma'qul, lekin ba'zida bu ishlamaydi va kod ishlashni davom ettirishi kerak.400 Bad Request
Siz hali ham biror narsa sodir bo'lganligini qayd qilishni xohlashingiz mumkin. Bu erda daraxt kesuvchilar yordamga keladi. Flask 0.3 dan boshlab logger siz ishlatishingiz uchun oldindan tuzilgan.
Mana bir nechta jurnal qo'ng'iroqlariga misollar:
app.logger.debug('A value for debugging')
app.logger.warning('A warning occurred (%d apples)', 42)
app.logger.error('An error occurred')
Ilova loggerstandart jurnal hisoblanadi , shuning uchun qo'shimcha ma'lumot olish uchun Loggerrasmiy hujjatlarga o'ting .logging
Ilova xatolarini ko'rib chiqing .
WSGI Middleware-ga ulanish
Flask ilovangizga WSGI o'rta dasturini qo'shish uchun ilovaning wsgi_appatributini o'rab oling. Masalan, ProxyFixNginx orqasida ishlash uchun Werkzeug o'rta dasturini qo'llash uchun:
|
| |