0Pricing
Flask Academy · درس

كتابة دالة create_app

أنشئ التطبيق واضبطه داخل مصنع.

كتابة دالة create_app درس مجاني في Flask Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Flask Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Flask Academy 4 دروس في المجموع.

بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.

Meet the Factory

An application factory is just a function named create_app that builds a fresh Flask app, configures it, and returns it. No globals required. 🏭

The Smallest Factory

At its core, create_app creates the app inside the function body and returns it. Everything you used to do at module level moves in here.

def create_app():
    app = Flask(__name__)
    return app

Local, Not Global

Notice the app now lives as a local variable. Each call produces a brand new instance, so nothing leaks between tests or environments.

Configure Inside

Set configuration on the local app before returning it. A common move is app.config.from_object to load a settings class.

def create_app():
    app = Flask(__name__)
    app.config.from_object("config.Dev")
    return app

Accept a Config Argument

Make the factory flexible by accepting a config parameter. Pass Dev, Test, or Prod settings depending on how the app is launched.

def create_app(config_class):
    app = Flask(__name__)
    app.config.from_object(config_class)
    return app

Register Routes Inside

Define or import your routes within create_app so they attach to this specific instance, not a shared global.

def create_app():
    app = Flask(__name__)
    @app.route("/")
    def home():
        return "Hi"
    return app

Where to Put It

Place create_app in your package init, like app/__init__.py. Importers then call the factory instead of grabbing a global.

How Flask Finds It

The dev server looks for a callable named create_app automatically. Setting FLASK_APP to your package is usually enough to launch.

FLASK_APP=app flask run

A WSGI Entry Point

For production servers you expose one instance by calling the factory once in a small wsgi.py module.

from app import create_app
app = create_app()

Testing Gets Easy

Tests just call create_app with test config and get an isolated app every time. No shared state, no surprises. ✅

app = create_app("config.Test")

Keep It Focused

Treat create_app as an assembly line: create, configure, wire up, return. Resist stuffing business logic directly inside it.

Quick Check

What does a create_app factory function return?

Recap

You wrote create_app: a function that builds, configures, and returns a fresh Flask app. It replaces the global and makes config and testing simple. 🎯

الأسئلة الشائعة

هل درس «كتابة دالة create_app» مجاني؟

نعم — نص درس «كتابة دالة create_app» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Flask Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Flask Academy 4 دروس في المجموع.

ماذا ستتعلم في «كتابة دالة create_app»؟

أنشئ التطبيق واضبطه داخل مصنع. تتمرن على Flask Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Flask Academy؟

لا تُشترط خبرة سابقة. Flask Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «كتابة دالة create_app»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Flask Academy هذا؟

نعم. كل درس في Flask Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. مشكلات كائن app العام
  2. كتابة دالة create_app
  3. تهيئة الامتدادات باستخدام init_app
  4. تسجيل Blueprints في المصنع
← العودة إلى Flask Academy