- Step 1:
pipenv install --python 3.8 - Step 2:
pipenv shell - Step 3:
pipenv install flask flask-sqlalchemy flask-marshmallow marshmallow-sqlalchemy flask-migrate psycopg2
flask-sqlalchemy is the sql-alchemy with flask bindings. flask-marshmallow is like the Serializer in Django Rest Framework, marshmallow-sqlalchemy is common binding between marshmallow and sqlalchemy (for things like ModelSerializer in Django Rest Framework).flask-migrate is migration tool for Flask based on ALEMBIC.psycopg2-binary is for connecting to postgres db.
Note: If psycopg2 install gives errors use psycopg2-binary. But this is a development only binary. It is not meant for production. For production, you need to compile psycopg2 from source.
See here for installing psycopg2 if you face issues: https://tekshinobi.com/install-psycopg2-on-ubuntu-18-04/
Now create the application file.. traditionally called app.py (or main.py…whatever your taste).touch app.py
Stick in this boilerplate code in app.py.
PyCharm costs around $200 a year. There is a community version of PyCharm which is free to use commercially but it lacks many features (like remote debugging support, advanced Django support and support for JavaScript and CSS) that make PyCharm attractive. On the other hand, VS Code is FOSS (Free and Open-Source Software). This is a no-brainer. Powerful Python IDE with a rich configuration menu All things considered, PyCharm Community Edition is a handy application that can help you create and organize your Python projects in an. There is a number of python IDEs available on the internet, but I would recommend you to kick start your Python journey by installing PyCharm community edition. Because PyCharm community edition comes with a lot of exciting features such as version control, visual debugging, syntax highlighting and many more. In this article, I will guide. PyCharm is an IDE that integrates with IPython Notebook, has an interactive Python console, and supports Anaconda as well as multiple scientific packages. PyCharm supports creating virtual environments for Python with conda. PyCharm is the most popular IDE for Python, and includes great features such as excellent code completion and inspection with advanced debugger and support for web programming and various frameworks. PyCharm is created by Czech company, Jet brains which focusses on creating integrated development environment for various web development.
Django Pycharm Community Center
Pycharm Community Django Server

2 4 6 8 10 12 | @app.route('/') return'Hello World' app.run() |
The project structure at this moment looks like this:
proj_dir/app.py
That’s right. Just my project directory with one file called app.py.

Click on “Add Configuration” button on top right. Under Templates, choose Python.
Select “Module name” instead of “Script path” and type flask.
Parameters: run
Environment Variables: PYTHONUNBUFFERED=1;FLASK_APP=app.py;FLASK_ENV=development
Python Interpreter: (your location of python interpreter in your virtual environment)
Working directory: (your location of python interpreter in your virtual environment)/bin
Note: Python Interpreter and Worrking directory are already filled if you already selected Python interpreter though Pycharm settings before configuring this Flask configuration.
Give your configuration a name. I often call it Flask.
Finally, it will look something like this (note: my pipenv created virtualenv is called tutorial)
Now do these steps on the console (don’t do the third step yet as app.py is still empty):
- export FLASK_APP=app.py
- export FLASK_ENV=development
- flask run
The no. 2 in above list is important. It will hot reload the server upon code changes
As of writing this post, there has been a bug with Werkzeug and Flask latest versions in PyPi and the Pycharm debugger. The bug only affects when debugger is run in development mode (FLASK_ENV=development; FLASK_DEBUG=1). If you run in production mode, there is no error. But its kinda duh. I like to run my debugger in development mode.

Pycharm Community Edition Setup
The workaround is to downgrade Flask to 1.0.3 and werkzeug to 0.15.4 and Python<=3.7.
Note that werkzeug 0.15.4 has known incompatibility with Python 3.8.x. Python 3.7 and 3.6 are OK.
Intellij seems to be laissez-faire about this issue and its still open. It affects both Professional and Community editions. See here:
https://intellij-support.jetbrains.com/hc/en-us/community/posts/360004300599-Debugging-a-flask-app-fails
and the actual ticket here:
https://youtrack.jetbrains.com/issue/PY-36445#focus=streamItem-27-3602876.0-0
Install Django In Pycharm
Finally, there are some legacy exports that you might come across in older code. Even stuff like app.run() instead of ‘flask run‘. This excellent stackoverflow post discusses that: https://stackoverflow.com/questions/17309889/how-to-debug-a-flask-app
Django Pycharm Community Free
As a bonus that link also deals with how to setup pdb (python command-line debugger). I often use this when debugging my tests in pytest.
