08-02-2023, 04:48 PM
I have the following *structure* in my project
\ myapp
\ app
__init__.py
views.py
run.py
And the following code:
**run.py**
from app import create_app
if __name__ == '__main__':
app = create_app()
app.run(debug=True, host='0.0.0.0', port=5001)
**views.py**
@app.route("/")
def index():
return "Hello World!"
**__init__.py**
from flask import Flask
def create_app():
app = Flask(__name__)
from app import views
return app
I'm trying to use the `factory design pattern` to create my `app` objects with different `config` files each time, and with a subdomain dispatcher be able to create and route different objects depending on the `subdomain` on the user request.
I'm following the Flask documentation where they talk about, all of this:
- [Application Context](
- [Applitation Factories](
- [Application with Blueprints](
- [Application Dispatching](
But I couldn't make it work, it seems that with my actual project `structure` there are no way to pass throw the `app` object to my `views.py` and it throw and `NameError`
> NameError: name 'app' is not defined
\ myapp
\ app
__init__.py
views.py
run.py
And the following code:
**run.py**
from app import create_app
if __name__ == '__main__':
app = create_app()
app.run(debug=True, host='0.0.0.0', port=5001)
**views.py**
@app.route("/")
def index():
return "Hello World!"
**__init__.py**
from flask import Flask
def create_app():
app = Flask(__name__)
from app import views
return app
I'm trying to use the `factory design pattern` to create my `app` objects with different `config` files each time, and with a subdomain dispatcher be able to create and route different objects depending on the `subdomain` on the user request.
I'm following the Flask documentation where they talk about, all of this:
- [Application Context](
[To see links please register here]
)- [Applitation Factories](
[To see links please register here]
)- [Application with Blueprints](
[To see links please register here]
)- [Application Dispatching](
[To see links please register here]
)But I couldn't make it work, it seems that with my actual project `structure` there are no way to pass throw the `app` object to my `views.py` and it throw and `NameError`
> NameError: name 'app' is not defined