Comments (4)
This feature has been added to the "decorators" branch. Will set to resolved post 0.2 release.
Original Comment By: Dan Jacob
from flask-script.
I'm thinking about something like this:
{{{
#!python
manager = Manager(create_app)
manager.add_option('-c', '--config', dest='config', required=False)
}}}
Then in your create_app function:
{{{
#!python
def create_app(config=None):
app = Flask(name)
if config:
app.config.from_pyfile(config)
return app
}}}
The "config" argument would not be passed to any commands.
I'll consider this feature for the 0.2 release.
Original Comment By: Dan Jacob
from flask-script.
Well, the factory function is exactly what I was thinking of when I suggested this. My shell (fish) makes it just a bit harder to set environment variables per-process, and command line options fit better in my mind with configuration than environment variables. (It would also be useful for, say, Flask-CouchDB-based applications, so you could disable automatically syncing in the factory function with a --no-sync option.)
Probably explaining in the docs, "If you pass an app directly to the Manager constructor, you will not be able to use command line options for your configuration" would be sufficient to avoid confusion.
Original Comment By: Matthew Frazier
from flask-script.
(Reply via [email protected]):
I did consider the possibility - the problem is that Flask application
may already been initialized when it is passed to the script, so
passing a config option would not work.
However, one possibility is if you pass a factory function to the
Manager constructor, the function could take a default config argument
passed from the command line.
Another option is to use config.from_envvar:
APP_CONFIG=dev.cfg python manage.py shell
def create_app():
app = Flask(name)
app.from_envvar('APP_CONFIG', silent=True)
This second option should at least be mentioned in the docs.
Original Comment By: Dan Jacob
from flask-script.
Related Issues (20)
- Help message seem mixed HOT 1
- Using ssl_key & ssl_cert options (instead of ssl_context) throws an error HOT 8
- Submanager uses wrong app instance
- How to speed up python manage.py imports and startup time? HOT 1
- Is there a way for flask-script to skip certain files/folders for detecting changes? HOT 1
- Documentation for resolve parameter on prompt_choices HOT 1
- Default command with parameters
- Error using type hinting in Python 3.5 with manager.command annotation HOT 2
- Make available commands configurable HOT 1
- IPython 5.1.0 not working with Flask-Script 2.0.5 HOT 1
- is flask-script now deprecated? HOT 1
- Terminal said no module named flask_script HOT 3
- Could we get a new release ? HOT 17
- How to use it with uWSGi HOT 2
- Error when use an unittest.
- Add deprecation warning HOT 1
- Error in 2.0.6: run() got multiple values for keyword argument 'ssl_context' HOT 4
- manager.command, deprecation warning HOT 1
- Will there be a release with the fix for flask.ext.script ImportError? HOT 2
- Archive this repo HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from flask-script.