در این پست میخواهیم کمی flask را یاد بدهیم و در پست های بعد به بقیه فریمورک ها بپردازیم.
اول باید Flask رو نصب کنیم
اگر پکیج هاتون خیلی زیاد نیست، نیازی به نصب فلاسک توی venv نیست، چون کدهای فلاسک خیلی زیاد نیست، ولی اگر پکیج هاتون خیلی زیاده و نگران تداخل هستین، میتونین یک venv بسازین
خب بریم سراغ نصب
pip install Flask
برای اطمینان از نصب کامل
>> Flask --version Python 3.11.2 Flask 2.3.2 Werkzeug 2.3.6
خب بریم که یک برنامه رو با فلاسک استارت بزنیم.
خب ما توی این قسمت از معماری خاصی استفاده نمیکنیم و کل کد هامونو توی یک فایل مینویسیم
پس اول باید یه دایرکتوری به صورت زیر بسازید
WebSite |_Tempaltes |_static |_css |_js |_images |_app.py
فایل App.py فایل اصلی پروژه ما هست پس بازش کنین و کد هاتونو بنویسین(معمولا اسم این فایل رو App میذارن ولی محدودیت اسم ندارین)
اول از همه ایمپورتش میکنیم و یک آبجکت ازش میسازیم و __name__ رو بهش پاس میدیم
from flask import Flask app = Flask(__name__)
میرسیم به ساخت اولین url-مون
هنگام ساخت یک وبسایت، به صفحاتش url نمیگن، میگن route : دی
برای ساخت یک route باید از متغییر اپ به صورت دکوریتور استفاده کنیم
@app.route('/') def one(): pass
متد route آرگومان ریکوایرد rule رو میگیره که متن url هست، یعنی اگر میخواین صفحه هوم رو بسازین باید یه / و مثلا گر صفحه example.com/Test رو میخواین بسازین باید یه /Test وارد کنین
/ رو باید قبل از متن بذارین، توی جنگو باید بعد از متن میذاشتین ولی توی فلاسک قبل متن هست
خب، حالا اگر بخواین یک صفحه html رو نشون بدین باید چی کار کنین؟
باید صفحه html رو در پوشه templates بسازین(اینجا اسم پوشه ی templates دست خودتون نیست و باید حتما templates باشه - اون s آخرش هم فراموش نشه!)
حالا کافیه از فلاسک، فانشکن render_template رو وارد کنین.
بعد توی render_template اسم فایل توی پوشه ی templates رو میدین(دقت کنین باید return-ش کنین)
@app.route('/') def one(): return render_template('index.html')
اگر میخواستین یه متنو پرینت کنین فقط کافیه اون متن رو ریترن کنین، حتی میتونین فایل html رو به صورت متنی هم ریترن کنین، پس چرا از رندر تمپلیت استفاده میکنیم؟Flask از یک موتور تمپلیت استفاده میکنه به اسم jinja این فانکشن رندر تمپلیت کد های جینجا رو ترجمه میکنه که به اونم میرسیم کد های جینجا برای فلاسک، عین خود تمپلیت انجین django هست و تفاوت های بسیار ریزی دارند
خب حالا باید برنامه رو ران کنیم
2 تا راه داریم، کد Flask run رو بزنیم. که بعد از هر تغییر، باید دوباره سرور رو ریستارت کنیم
یا این کارو کنیم.
from flask import Flask, render_template app = Flask(__name__) @app.route('/') def one(): return render_template('Home.html') if __name__ == '__main__': app.run(debug=True, port=4005)
مقادیری که به run دادم اختیاری هستن، پورت که معلومه چیه، دیباگ هم حالت دیباگ رو فعال میکنه و با تغییر در فایل ها، سرور ری استارت میشه
منتظر قسمت بعد این مجموعه باشین
❤️💬