25
votes

Every time I start up my flask app the environment variable is set to production. I want to have it set to development mode by default. Otherwise every time I start my app i have to run ..

export FLASK_ENV=development

How can I set environment's default value as development in every startup?

EDIT: I am using flask in a virtual environment on a raspberry pi.

2
What's your python code? - Frank AK
why is my question being downvoted? I did not find this question to have been asked before. - crazyPen

2 Answers

36
votes

You can edit your main flask app file and add these lines:

if __name__ == '__main__':
    app.run(debug=True)

Using this method you have to run your flask app with Python interpreter like this => python app.py

Best Practice:

  1. Install python-dotenv package inside your working environment =>pip install python-dotenv
  2. Create a file named .env, put your environment variables in it, for your case it's FLASK_ENV=development
  3. Then add this code to your config.py or some file that will get loaded before Flask main App

    from dotenv import load_dotenv
    dotenv_path = join(dirname(__file__), '.env')  # Path to .env file
    load_dotenv(dotenv_path)
    

Note that: If you are using flask command to run your application, you don't need to do the third step, flask will find .env files in the project directory by itself.

Using this method, it will only set Environment variable for the project that you have added this codes to..

5
votes

You can do this, unless you specify the enviroment, flask will assume production.

export FLASK_ENV=development
flask run