Я только начинаю с фляжки, и я попал в ловушку. Я пытаюсь написать небольшой блог, чтобы привыкнуть к структуре, поэтому я сделал два пакета: «auth» и «posts». Я прочитал раздел «Большие приложения» в Flask docs.Колба: использование нескольких пакетов в одном приложении
Мой каталог выглядит следующим образом.
>/root
>>run.py
>>/posts
>>>____init____.py
>>>views.py
>>>/templates
>>>/static
>>/auth
>>>____init____.py
>>>views.py
>>>/templates
>>>/static
run.py выглядит следующим образом:
from flask import Flask
from auth import auth_app
from posts import posts_app
auth_app.run()
posts_app.run()
/posts/__init__.py
и /auth/__init__.py
выглядеть следующим образом:
from flask import Flask
auth_app = Flask(__name__)
import auth.views
и views.py выглядеть следующим образом:
from auth import auth_app
@auth_app.route('/auth/')
def index():
return "hello auth!"
Но всякий раз, когда я запускаю сервер, доступен только localhost/auth /, а все остальное дает 404, som. Я предполагаю, что приложение posts не запускается.
Может ли кто-нибудь помочь?
Чертежи - это хорошая идея! –
Что делать, если чертежи 'auth' и' post' должны были использовать модуль 'models.py', определенный на корневом уровне, вместе с' run.py'?Тогда было бы целесообразно объявить их в виде чертежей, даже если они не были «полностью независимы» от основного приложения и, следовательно, не могли использоваться повторно в других приложениях, которые не имеют одинаковых «models.py»? Спасибо! – aralar
@ miguel5 То, что вы определяете как «независимый», зависит от вас. Чертежи с флагами помогают создать способ разделить то, что заботит Флакс: расположение статических файлов и шаблонов, URL-адреса и способы их сопоставления с вашими представлениями и т. Д. Если вы хотите использовать это только для того, чтобы эти каталоги отличались , но все-таки полагаться на один 'model.py', то это прекрасно. Если вы хотите также разделить ваши модели на различные структуры данных, вы также можете это сделать. Flask сама по себе не заботится о том, как вы храните файл 'models.py'. –