امروزه پروتکل httpدر دنیای وب به عنوان پایه گذار ارتباط اطلاعات هست. در این پروتکل متدهای متفاوتی برای دسترسی به اطلاعات هستند
برخی از این متدها به ترتیب زیر هستند:

  • GET: اطلاعات را به صورت ساده و رمزنگاری نشده برای سرور ارسال می کند.
  • HEAD: همانند متد GET عمل کرده اما بدون پاسخ در بدنه.
  • POST: برای ارسال اطلاعات فرم HTMLای برای سرور استفاده می شود. اطلاعاتی که از این طریق ارسال می شوند توسط سرور کش نمی شوند.
  • PUT: تمامی منابع هدف ارائه شده را با محتوای بارگزاری شده جابجا می کند.
  • DELETE: تمامی منابع هدف را با آدرس url داده شده حذف می کند.

به طور پیش فرض پاسخ هایش را در قالب درخواست از نوع GET هدایت می کند. هر چند که این هدایت می تواند توسط آرگومانهای متد route() تغییر کند.

برای نمونه استفاده از متد POST مثال زیر را مشاهده کنید: ابتدا یک فرم لاگین در قالب HTMLایجاد کرده:

 <html>
   <body>
      <form action = "http://localhost:5000/login" method = "post">
         <p>Enter Name:</p>
         <p><input type = "text" name = "nm" /></p>
         <p><input type = "submit" value = "submit" /></p>
      </form>
   </body>
</html>

اکنون اسکریپت کنترل آن در پایتون:

from flask import Flask, redirect, url_for, request
app = Flask(__name__)

@app.route('/success/<name>')
def success(name):
   return 'welcome %s' % name

@app.route('/login',methods = ['POST', 'GET'])
def login():
   if request.method == 'POST':
      user = request.form['nm']
      return redirect(url_for('success',name = user))
   else:
      user = request.args.get('nm')
      return redirect(url_for('success',name = user))

if __name__ == '__main__':
   app.run(debug = True)

آدرس http://localhost/login به متد login() مپ شده. زمانی که سرور داده ها را از طریق متد پست دریافت کرد دسترسی به پارامتر nm به صورت زیر امکان پذیر است:

user = request.form['nm']

در قطعه کد بالا form یک نوع دیکشنری هست که پارامترهای فرم ارسال شده را به صورت کلید مقدار شامل می شود. اگر اطلاعات فرم با متد GET‍ ارسال شوند، این متغییر args می شوند و از توع دیکشنری می باشد.

برچسب ها: python flask programming tutorial