آموزش ساخت اولین برنامه وب با Flask و پایتون ۳

فلسک (Flask) یک فریم‌ورک سبک‌وزن وب پایتون است که ابزارها و قابلیت‌های مفیدی برای ساخت برنامه‌های وب در زبان پایتون ارائه می‌دهد. این فریم‌ورک به توسعه‌دهندگان انعطاف‌پذیری می‌دهد و برای توسعه‌دهندگان جدید قابل دسترسی است، زیرا می‌توانید به سرعت یک برنامه وب را تنها با یک فایل پایتون بسازید. فلسک همچنین توسعه‌پذیر است و ساختار دایرکتوری خاصی تحمیل نمی‌کند و نیازی به کدهای اولیه پیچیده قبل از شروع ندارد.

یادگیری فلسک به شما اجازه می‌دهد که به سرعت برنامه‌های وب پایتون را بسازید. می‌توانید از کتابخانه‌های پایتون برای افزودن ویژگی‌های پیشرفته به برنامه وب خود، مانند ذخیره‌سازی داده‌ها در دیتابیس یا اعتبارسنجی فرم‌های وب استفاده کنید.

در این آموزش، شما یک برنامه کوچک وب می‌سازید که متن HTML را در مرورگر نمایش می‌دهد. ابتدا فلسک را نصب کرده، سپس یک برنامه فلسک می‌نویسید و اجرا می‌کنید و برنامه را در حالت توسعه اجرا خواهید کرد. از routing برای نمایش صفحات مختلف وب استفاده خواهید کرد که اهداف متفاوتی در برنامه وب شما دارند. همچنین از view functionها برای تعامل کاربران با برنامه از طریق مسیرهای داینامیک استفاده می‌کنید. در نهایت، از debugger برای رفع اشکال‌ها بهره خواهید برد.

پیش‌نیازها

  • یک محیط برنامه‌نویسی local پایتون 3. در این آموزش پوشه پروژه را flask_app نامگذاری می‌کنیم.
  • آشنایی با مفاهیم پایه پایتون 3، مانند انواع داده‌ها، لیست‌ها، توابع و مفاهیم مشابه.
  • آشنایی با مفاهیم پایه HTML.

نصب فلسک

در این مرحله، محیط پایتون خود را فعال می‌کنید و سپس فلسک را با استفاده از pip نصب می‌کنید.

ابتدا اگر محیط برنامه‌نویسی شما فعال نیست، آن را فعال کنید:


source your-venv/bin/activate

پس از فعال کردن محیط، فلسک را به وسیله دستور زیر نصب کنید:

pip install Flask

بعد از اتمام نصب، لیستی از پکیج‌های نصب شده نمایش داده می‌شود که نشان‌دهنده نصب پکیج‌های وابسته به فلسک نیز است.

ساخت برنامه ساده فلسک

حالا که محیط آماده است، شروع به نوشتن یک برنامه ساده فلسک می‌کنید که در مرورگر HTML نمایش می‌دهد.

در پوشه flask_app، فایلی به نام app.py باز کرده و کد زیر را در آن قرار دهید:

from flask import Flask

app = Flask(__name__)

@app.route('/')
@app.route('/index')
def hello():
    return '<h1>Hello, World!</h1>'

در کد بالا، ابتدا شیء Flask را از پکیج flask وارد کردید. سپس یک نمونه از برنامه فلسک با نام app ساختید و نام ماژول جاری را به عنوان آرگومان وارد کردید. این به فلسک می‌گوید که برنامه کجا قرار دارد.

با دکوریتور @app.route، تابع hello() به یک view function تبدیل شده که پاسخ HTTP را به مرورگر ارسال می‌کند. این تابع برای مسیرهای ‘/’ و ‘/index’ پاسخ ارسال می‌کند و در اینجا عبارت “Hello, World!” را داخل تگ <h1> برمی‌گرداند.

اجرای برنامه

برنامه را با دستورات زیر اجرا کنید (در پوشه پروژه و با فعال بودن محیط):

export FLASK_APP=app.py
export FLASK_ENV=development
flask run

در سیستم‌های ویندوز به جای export باید از set استفاده کنید.

اجرای این دستورات توسعه سرور را فعال می‌کند و برنامه به آدرس http://127.0.0.1:5000/ در مرورگر نمایش داده می‌شود. شما باید متن Hello, World! را در تگ <h1> ببینید.

برای متوقف کردن سرور در ترمینال CTRL+C را فشار دهید.

اضافه کردن مسیرهای بیشتر

می‌توانید مسیرهای دیگری ایجاد کنید تا صفحات مختلفی نمایش داده شوند. مثلاً مسیر زیر صفحه‌ای درباره برنامه به آدرس /about ایجاد می‌کند:

@app.route('/about')
def about():
    return '<h3>This is a Flask web application.</h3>'

حال می‌توانید در مرورگر http://127.0.0.1:5000/about را باز کنید و متن صفحه را ببینید.

استفاده از مسیرهای داینامیک

برای تعامل کاربران، می‌توانید مسیرهایی با متغیر در URL ایجاد کنید. مثلاً مسیر زیر کلمه‌ای را از URL گرفته و آن را با حروف بزرگ نمایش می‌دهد:

from markupsafe import escape

@app.route('/capitalize/<word>')
def capitalize(word):
    safe_word = escape(word)
    return f'<h1>{safe_word.capitalize()}</h1>'

در اینجا escape() برای جلوگیری از حملات XSS استفاده شده است. می‌توانید در مرورگر، آدرس‌هایی مانند /capitalize/python باز کنید و نتیجه را ببینید.

همچنین می‌توانید چند متغیر عددی بگیرید و عملیات انجام دهید. مثلاً جمع دو عدد:

@app.route('/add/<int:n1>/<int:n2>/')
def add(n1, n2):
    return f'<h1>{n1 + n2}</h1>'

آدرسی مانند /add/4/6/ عدد ۱۰ را نمایش می‌دهد.

اشکال‌زدایی و استفاده از دیباگر فلسک

برای رفع اشکالات در توسعه، می‌توانید از Debugger فلسک استفاده کنید. مثال زیر یک مسیر اضافه می‌کند که نام کاربر را با شناسه می‌گیرد:

from flask import abort

@app.route('/greet/<int:user_id>/')
def greet_user(user_id):
    users = ['Bob', 'Alice', 'Eve']
    try:
        return f'<h2>Hi {users[user_id]}</h2>'
    except IndexError:
        abort(404)

اگر عدد user_id از محدوده لیست خارج باشد، صفحه ۴۰۴ نمایش داده می‌شود. در حالت توسعه اگر یک خطا در برنامه رخ دهد، Debugger آن را به شما نشان می‌دهد.

نتیجه‌گیری

شما یاد گرفتید فلسک چیست، چگونه آن را نصب و اجرا کنید، همچنین چگونه از routing و view function برای نمایش صفحات مختلف استفاده کنید. با مسیرهای داینامیک کاربر بتواند از طریق URL با برنامه تعامل داشته باشد و نحوه استفاده از Debugger برای رفع خطاها را آموختید.

از همراهی شما با پارمین کلود سپاسگذاریم.

Click to rate this post!
[Total: 0 Average: 0]

نظرات کاربران

دیدگاهی بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *