Po prostu zaczynam od butelki i trafiłem w szkopuł. Próbuję napisać mały blog, aby przyzwyczaić się do frameworka, więc zrobiłem dwa pakiety, "auth" i "posty". Przeczytałem w sekcji Duże aplikacje w Flask docs.Flask: Używanie wielu pakietów w jednej aplikacji
Mój katalog wygląda następująco.
>/root
>>run.py
>>/posts
>>>____init____.py
>>>views.py
>>>/templates
>>>/static
>>/auth
>>>____init____.py
>>>views.py
>>>/templates
>>>/static
run.py wygląda następująco:
from flask import Flask
from auth import auth_app
from posts import posts_app
auth_app.run()
posts_app.run()
/posts/__init__.py
i /auth/__init__.py
wyglądać następująco:
from flask import Flask
auth_app = Flask(__name__)
import auth.views
i views.py wyglądać następująco:
from auth import auth_app
@auth_app.route('/auth/')
def index():
return "hello auth!"
Ale zawsze, gdy uruchamiam serwer, dostępny jest tylko localhost/auth /, a wszystko inne daje 404, som zakładam, że aplikacja posts nie jest uruchamiana.
Czy ktoś może pomóc?
Plany to dobry pomysł! –
Co jeśli schematy 'auth' i' post' muszą używać modułu 'models.py' zdefiniowanego na poziomie katalogu głównego, wraz z' run.py'?Czy miałoby sens zadeklarowanie ich jako projektów, nawet jeśli nie byłyby one "całkowicie niezależne" od głównej aplikacji, a zatem nie można ich używać w innych aplikacjach, które nie mają tego samego modelu 'models.py'? Dziękuję Ci! – aralar
@ miguel5 To, co określasz jako "niezależne", zależy od Ciebie. Projekty Flask pomagają odróżnić rzeczy, na których opiera się Flask: położenie plików statycznych i szablonów, adresy URL i sposób ich mapowania do widoków itp. Jeśli chcesz tylko użyć tego do zachowania różnych katalogów , ale nadal polegać na jednym 'model.py', to jest w porządku. Jeśli chcesz także rozdzielić modele na różne struktury danych, możesz to zrobić. Sam Flask nie przejmuje się przechowywaniem pliku 'models.py'. –