Ali Zeiynali
Ali Zeiynali
خواندن ۲ دقیقه·۱ سال پیش

پایتون و بک اند - 3: فلاسک

pyhton and bakcend
pyhton and bakcend

در این پست میخواهیم کمی 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 دادم اختیاری هستن، پورت که معلومه چیه، دیباگ هم حالت دیباگ رو فعال میکنه و با تغییر در فایل ها، سرور ری استارت میشه


منتظر قسمت بعد این مجموعه باشین



❤️💬

طراحی سایتفریم ورکفلاسکrender templateپایتون
یک برنامه نویس (نه چندان) نویسنده؟ https://coffeete.ir/Azeiynali
شاید از این پست‌ها خوشتان بیاید