برنامه نویسی

فلاسک: یک راهنمای جامع – جامعه dev

مقدمه

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

فلاسک را با مثال بخوانید


1. فلاسک چیست؟

Flask یک چارچوب وب برای پایتون است که ابزارها ، کتابخانه ها و فناوری هایی را برای ساخت برنامه های وب فراهم می کند. بر خلاف Django ، که یک چارچوب وب تمام عیار با ویژگی های داخلی است ، Flask یک رویکرد مینیمالیستی را دنبال می کند و به توسعه دهندگان این امکان را می دهد تا در صورت لزوم ابزارهای خود را انتخاب کنند.

ویژگی های فلاسک:

  • سبک وزن و ساده: با ORM ، احراز هویت یا پانل مدیر همراه نیست.
  • ماژولار: ادغام پسوندها را طبق نیاز پروژه امکان پذیر می کند.
  • انعطاف پذیر: از توسعه API آرام پشتیبانی می کند.
  • الگوهای jinja2: برای ارائه صفحات HTML پویا ، الگوی قدرتمندی را فراهم می کند.
  • مبتنی بر WSGI: از Werkzeug ، یک ابزار WSGI برای استفاده از درخواست استفاده می کند.

2. تنظیم فلاسک

نصب

برای شروع ، فلاسک را با استفاده از PIP نصب کنید:

pip install flask
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

ایجاد یک برنامه فلاسک ساده

یک فایل پایتون ایجاد کنید ، به عنوان مثال app.pyو کد زیر را بنویسید:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def home():
    return "Hello, Flask!"

if __name__ == '__main__':
    app.run(debug=True)
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

اجرای برنامه Flask

python app.py
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

به سمت http://127.0.0.1:5000/ در مرورگر خود برای دیدن خروجی.


3. مسیریابی در فلاسک

Flask عملکرد مسیریابی را برای نقشه برداری URL به توابع فراهم می کند.

@app.route('/about')
def about():
    return "This is the about page."
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

مسیریابی پویا

@app.route('/user/')
def greet(name):
    return f"Hello, {name}!"
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

مبدل های URL در فلاسک

فلاسک به مبدل های URL خاص نوع اجازه می دهد:

@app.route('/post/')
def show_post(post_id):
    return f"Post ID: {post_id}"
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

با استفاده از چندین مسیر

@app.route('/contact')
@app.route('/support')
def contact():
    return "Contact us at support@example.com"
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید


4. الگوهای فلاسک با jinja2

Flask از Jinja2 برای ارائه محتوای پویا در HTML استفاده می کند.

ایجاد یک الگوی HTML

ایجاد a templates فهرست و اضافه کردن index.html داخل:




    </span>Home<span class="nt"/>
<span class="nt"/>
<span class="nt"/>
    <span class="nt"/>Welcome, {{ name }}!<span class="nt"/>
<span class="nt"/>
<span class="nt"/>
</code></pre>
<div class="highlight__panel js-actions-panel">
<div class="highlight__panel-action js-fullscreen-code-action">
    <svg xmlns="http://www.w3.org/2000/svg" width="20px" height="20px" viewbox="0 0 24 24" class="highlight-action crayons-icon highlight-action--fullscreen-on"><title>حالت تمام صفحه را وارد کنید
    

از حالت تمام صفحه خارج شوید

ارائه الگوی

from flask import render_template

@app.route('/welcome/')
def welcome(name):
    return render_template('index.html', name=name)
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

با استفاده از ساختارهای کنترل در jinja2


{% for item in items %}
    
  • {{ item }} {% endfor %}
  • حالت تمام صفحه را وارد کنید

    از حالت تمام صفحه خارج شوید

    الگوهای گسترده

    ایجاد کردن base.html:

    
    
    
        </span>{% block title %}My Site{% endblock %}<span class="nt"/>
    <span class="nt"/>
    <span class="nt"/>
        <span class="nt"><nav/></span>My Navigation Bar<span class="nt"/>
        {% block content %}{% endblock %}
    <span class="nt"/>
    <span class="nt"/>
    </code></pre>
    <div class="highlight__panel js-actions-panel">
    <div class="highlight__panel-action js-fullscreen-code-action">
        <svg xmlns="http://www.w3.org/2000/svg" width="20px" height="20px" viewbox="0 0 24 24" class="highlight-action crayons-icon highlight-action--fullscreen-on"><title>حالت تمام صفحه را وارد کنید
        
    

    از حالت تمام صفحه خارج شوید

    در یک الگوی دیگر گسترش دهید:

    {% extends "base.html" %}
    {% block title %}Home{% endblock %}
    {% block content %}
        Welcome to my site!
    {% endblock %}
    
    حالت تمام صفحه را وارد کنید

    از حالت تمام صفحه خارج شوید


    5. فرم های رسیدگی و احراز هویت کاربر

    برای رسیدگی به ورودی کاربر ، Flask فراهم می کند request شیء.

    from flask import request
    
    @app.route('/login', methods=['GET', 'POST'])
    def login():
        if request.method == 'POST':
            username = request.form['username']
            return f"Welcome, {username}"
        return ''''''
    
    حالت تمام صفحه را وارد کنید

    از حالت تمام صفحه خارج شوید

    احراز هویت کاربر با Flask-Login

    from flask_login import LoginManager, UserMixin, login_user, logout_user
    
    login_manager = LoginManager()
    login_manager.init_app(app)
    
    class User(UserMixin):
        pass
    
    حالت تمام صفحه را وارد کنید

    از حالت تمام صفحه خارج شوید


    6. فلاسک با بانکهای اطلاعاتی (sqlalchemy)

    Flask از ادغام با بانکهای اطلاعاتی با استفاده از SQLalchemy پشتیبانی می کند.

    from flask_sqlalchemy import SQLAlchemy
    
    app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///data.db'
    db = SQLAlchemy(app)
    
    class User(db.Model):
        id = db.Column(db.Integer, primary_key=True)
        name = db.Column(db.String(100))
    
        def __repr__(self):
            return f"{self.name}>"
    
    حالت تمام صفحه را وارد کنید

    از حالت تمام صفحه خارج شوید

    واکشی داده ها از پایگاه داده

    @app.route('/users')
    def get_users():
        users = User.query.all()
        return {"users": [user.name for user in users]}
    
    حالت تمام صفحه را وارد کنید

    از حالت تمام صفحه خارج شوید


    7. مفاهیم پس زمینه پیشرفته در فلاسک

    پیاده روی میان افزار

    @app.before_request
    def before_request():
        print("Before handling request")
    
    حالت تمام صفحه را وارد کنید

    از حالت تمام صفحه خارج شوید

    کارهای پس زمینه با کرفس

    from celery import Celery
    
    app.config['CELERY_BROKER_URL'] = 'redis://localhost:6379/0'
    celery = Celery(app.name, broker=app.config['CELERY_BROKER_URL'])
    
    @celery.task
    def background_task(x, y):
        return x + y
    
    حالت تمام صفحه را وارد کنید

    از حالت تمام صفحه خارج شوید

    حافظه پنهان با فلاسک

    from flask_caching import Cache
    
    app.config['CACHE_TYPE'] = 'simple'
    cache = Cache(app)
    
    @cache.cached(timeout=60)
    @app.route('/cached')
    def cached_view():
        return "This is a cached response."
    
    حالت تمام صفحه را وارد کنید

    از حالت تمام صفحه خارج شوید

    WebSockets با Flask-Socketio

    from flask_socketio import SocketIO
    
    socketio = SocketIO(app)
    
    @socketio.on('message')
    def handle_message(msg):
        print('Received message:', msg)
    
    حالت تمام صفحه را وارد کنید

    از حالت تمام صفحه خارج شوید

    پایان

    Flask یک چارچوب قدرتمند است که انعطاف پذیری را برای توسعه همه چیز از صفحات وب ساده گرفته تا API های پیچیده فراهم می کند. با تسلط بر فلاسک ، توسعه دهندگان می توانند به طور مؤثر برنامه های مقیاس پذیر و قابل حفظ را بسازند. این راهنما همه چیز را از راه اندازی گرفته تا استقرار ، احراز هویت ، بانکهای اطلاعاتی ، میانی ، حافظه پنهان ، وب سایت و کارهای پس زمینه پوشش می دهد و پایه و اساس محکمی برای کار با فلاسک فراهم می کند.

    نوشته های مشابه

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

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

    دکمه بازگشت به بالا