Подтвердить что ты не робот

Общая папка/структура файла в приложении Flask

Я только что создал флеш-приложение, и до сих пор у меня есть маршрутизатор для моего "Hello world!". шаблон.

Я хотел бы добавить немного (много) больше функциональности, но мне интересно, как я должен структурировать каталог приложения.

Каков наиболее распространенный способ структурирования приложения Flask? Например, должен ли я создать routes.py для всех моих маршрутов? Где идет материал SQLAlchemy? Если модели находятся в models.py?

4b9b3361

Ответ 1

Вы должны проверить страницу "Большие приложения" в разделе "Шаблоны" в документах Flask: http://flask.pocoo.org/docs/patterns/packages/. Кажется, это модель, которую придерживаются большинство людей, когда их приложение требует пакет вместо модуля.

Я считаю, что views.py - это то, что вы вызываете routes.py. После этого модели войдут в models.py, формы будут входить forms.py и т.д.

Ответ 2

Пример каталога FlaskApp:

yourapp/  
    /yourapp  
        /run.py  
        /config.py  
        /yourapp  
            /__init__.py
            /views.py  
            /models.py  
            /static/  
                /main.css
            /templates/  
                /base.html  
        /requirements.txt  
        /yourappenv

run.py - содержит фактический код python, который будет импортировать приложение и запустить сервер разработки.
config.py - хранит конфигурации для вашего приложения.
__init__.py - инициализирует ваше приложение, создавая экземпляр приложения Flask.
views.py - здесь определяется routes.
models.py - здесь вы определяете модели для своего приложения.
static - содержит статические файлы, то есть CSS, Javascript, изображения
templates - здесь вы храните свои шаблоны html, т.е. index.html, layout.html
requirements.txt - здесь вы сохраняете свои зависимости от пакета, вы можете использовать pip
yourappenv - ваша виртуальная среда для разработки

Ответ 3

Я думаю, что фляжка - это микро-каркас, и теперь вы должны решить, как создавать файлы и папки.

i использую этот способ:

это около структуры Django

Я предлагаю вам увидеть какой-то проект, который даст вам то, что вы хотите

Ответ 4

Я бы сказал, что если вы разбиваете приложение, используйте разделенную, а не функциональную структуру. Я защищаю это, потому что вы, скорее всего, будете работать над одним из этих компонентов подразделения в любое время.

Этот тип структуры хорошо подходит для приложений на рынке или приложений SaaS, где разные группы пользователей используют разные типы представлений. API только колба приложение, я мог бы использовать функциональное разделение.

Вот примеры из Flask Blueprints. Чертежи - это, по сути, документированный совет, как разделить приложение Flask на более управляемые части. Подробнее об этом по адресу: http://exploreflask.com/en/latest/blueprints.html

Вот пример делительного разделения. Посмотрите, как каждая функция сгруппирована вместе.

yourapp/
    __init__.py
    admin/
        __init__.py
        views.py
        static/
        templates/
    home/
        __init__.py
        views.py
        static/
        templates/
    control_panel/
        __init__.py
        views.py
        static/
        templates/
    models.py

Вот функциональный пример>

yourapp/
    __init__.py
    static/
    templates/
        home/
        control_panel/
        admin/
    views/
        __init__.py
        home.py
        control_panel.py
        admin.py
    models.py

Ответ 6

Любой, кто ищет простую, удобную для начинающих структуру для проекта колбы, может найти это полезным:

   |__movies 
     |__run.py 
     |__app     
        ├── templates
        │   └── index.html
        │   └── signup.html
        └── __init__.py
        └── routes.py

Здесь "фильмы" - это название основного приложения. Он содержит "run.py" и папку "app". Папка "app" содержит все необходимые файлы фляги, такие как папка "templates", "__init __.py" и "rout.py".

Содержание:

run.py:

from app import app

__init.py__:

from flask import Flask

app = Flask(__name__)

from app import routes


app.run(debug=True)

rout.py:

from app import app

@app.route('/')
@app.route('/index')
def index():
    return "Hello, World!"

Ответ 7

Красота колбы заключается в ее гибкости. Вы можете легко создать django-подобную структуру проекта. Django популяризировал абстракцию функций в приложениях и делает их многократно используемыми, но это может быть излишним для многих проектов.

Но с флягой вы можете пойти в любую сторону. Пишите многократно используемые приложения или пишите простые приложения. Проверьте эти скелеты печенья -

  1. минимальный скелет

    myproject ├── config.py ├── instance │ └── config.py ├── myproject │ ├── commands.py │ ├── controllers.py │ ├── extensions.py │ ├── forms.py │ ├── __init__.py │ ├── models.py │ ├── routes.py │ └── ui │ ├── static │ │ ├── css │ │ │ └── styles.css │ │ └── js │ │ └── custom.js │ └── templates │ └── index.html ├── README.md ├── requirements.txt └── wsgi.py

  2. Джанго, как скелет

    myproject ├── config.py ├── development.py ├── instance │ └── config.py ├── myproject │ ├── auth │ │ ├── controllers.py │ │ ├── forms.py │ │ ├── __init__.py │ │ ├── models.py │ │ └── routes.py │ ├── helpers │ │ ├── controllers.py │ │ ├── __init__.py │ │ └── models.py │ ├── __init__.py │ └── ui │ └── templates │ ├── 404.html │ ├── 500.html │ └── base.html ├── README.md ├── requirements.txt ├── tests │ ├── auth │ │ ├── __init__.py │ │ └── test_controllers.py │ └── __init__.py └── wsgi.py

Это отличная статья на эту тему.