|
From flask import Flask app = Flask
|
bet | 11/13 | Sana | 30.07.2024 | Hajmi | 252,31 Kb. | | #268934 |
Bog'liq Flask notesfrom flask import render_template
@app.errorhandler(404)
def not_found(error):
return render_template('error.html'), 404
Siz shunchaki qaytarish ifodasini o'rashingiz make_response()va uni o'zgartirish uchun javob ob'ektini olishingiz kerak, keyin uni qaytaring:
from flask import make_response
@app.errorhandler(404)
def not_found(error):
resp = make_response(render_template('error.html'), 404)
resp.headers['X-Something'] = 'A value'
return resp
JSON bilan API
API yozishda umumiy javob formati JSON hisoblanadi. Flask yordamida bunday API yozishni boshlash oson. dictAgar ko'rinishdan yoki qaytarsangiz list, u JSON javobiga aylantiriladi.
@app.route("/me")
def me_api():
user = get_current_user()
return {
"username": user.username,
"theme": user.theme,
"image": url_for("user_image", filename=user.image),
}
@app.route("/users")
def users_api():
users = get_all_users()
return [user.to_json() for user in users]
Bu funksiyaga maʼlumotlarni uzatish uchun yorliq boʻlib jsonify(), u har qanday qoʻllab-quvvatlanadigan JSON maʼlumotlar turini ketma-ketlashtiradi. Bu shuni anglatadiki, dict yoki ro'yxatdagi barcha ma'lumotlar JSON seriyali bo'lishi kerak.
Ma'lumotlar bazasi modellari kabi murakkab turlar uchun avval ma'lumotlarni haqiqiy JSON turlariga aylantirish uchun ketma-ketlashtirish kutubxonasidan foydalanishni xohlaysiz. Jamiyat tomonidan qo'llab-quvvatlanadigan ko'plab seriyali kutubxonalar va Flask API kengaytmalari mavjud bo'lib, ular yanada murakkab ilovalarni qo'llab-quvvatlaydi.
Seanslar
So'rov ob'ektiga qo'shimcha ravishda sessionfoydalanuvchiga tegishli ma'lumotlarni bir so'rovdan ikkinchisiga saqlash imkonini beruvchi ikkinchi ob'ekt ham mavjud. Bu siz uchun kukilar ustida amalga oshiriladi va kukilarni kriptografik tarzda imzolaydi. Buning ma'nosi shundaki, foydalanuvchi cookie faylingiz mazmunini ko'rishi mumkin, lekin imzolash uchun ishlatiladigan maxfiy kalitni bilmasa, uni o'zgartira olmaydi.
Seanslardan foydalanish uchun siz maxfiy kalitni o'rnatishingiz kerak. Seanslar qanday ishlaydi:
|
| |