|
From flask import Flask app = Flask
|
bet | 7/13 | Sana | 30.07.2024 | Hajmi | 252,31 Kb. | | #268934 |
Bog'liq Flask notesfrom flask import request
with app.test_request_context('/hello', method='POST'):
# now you can do something with the request until the
# end of the with block, such as basic assertions:
assert request.path == '/hello'
assert request.method == 'POST'
Boshqa imkoniyat butun WSGI muhitini usulga o'tkazishdir request_context():
with app.request_context(environ):
assert request.method == 'POST'
So'rov ob'ekti
So'rov ob'ekti API bo'limida hujjatlashtirilgan va biz bu erda batafsil yoritmaymiz (qarang Request). Bu erda ba'zi eng keng tarqalgan operatsiyalarning keng ko'rinishi. Avvalo, uni moduldan import qilishingiz kerak flask:
from flask import request
Joriy so'rov usuli atribut yordamida mavjud method. Shakl ma'lumotlariga ( POSTyoki PUTso'rovda uzatiladigan ma'lumotlarga) kirish uchun siz atributdan foydalanishingiz mumkin form. Yuqorida aytib o'tilgan ikkita atributning to'liq misoli:
@app.route('/login', methods=['POST', 'GET'])
def login():
error = None
if request.method == 'POST':
if valid_login(request.form['username'],
request.form['password']):
return log_the_user_in(request.form['username'])
else:
error = 'Invalid username/password'
# the code below is executed if the request method
# was GET or the credentials were invalid
return render_template('login.html', error=error)
Agar kalit atributda mavjud bo'lmasa nima bo'ladi form? Bunday holda, maxsus belgi KeyErrorko'tariladi. Siz uni standart kabi ushlashingiz mumkin KeyError, lekin buni qilmasangiz, HTTP 400 noto'g'ri so'rov xato sahifasi o'rniga ko'rsatiladi. Shunday qilib, ko'p holatlarda siz bu muammoni hal qilishingiz shart emas.
URL ( ?key=value) da taqdim etilgan parametrlarga kirish uchun siz atributdan foydalanishingiz mumkin args:
searchword = request.args.get('key', '')
Biz URL parametrlariga get yoki ushlash orqali kirishni tavsiya qilamiz KeyError, chunki foydalanuvchilar URL manzilini oʻzgartirishi va ularga 400 ta notoʻgʻri soʻrov sahifasini taqdim etishi foydalanuvchi uchun qulay emas.
So'rov ob'ektining usullari va atributlarining to'liq ro'yxati uchun hujjatlarga o'ting Request.
Fayl yuklash
Yuklangan fayllarni Flask bilan osongina boshqarishingiz mumkin. Faqat HTML formangizga atributni o'rnatishni unutmang enctype="multipart/form-data", aks holda brauzer fayllaringizni umuman uzatmaydi.
Yuklangan fayllar xotirada yoki fayl tizimidagi vaqtinchalik joyda saqlanadi. filesUshbu fayllarga so'rov ob'ektidagi atributga qarab kirishingiz mumkin . Har bir yuklangan fayl o'sha lug'atda saqlanadi. U xuddi standart Python fileob'ekti kabi harakat qiladi, lekin save()bu faylni serverning fayl tizimida saqlash imkonini beruvchi usulga ham ega. Bu qanday ishlashini ko'rsatadigan oddiy misol:
|
| |