├── config.py
├── run.py
├── app
├── routes.py
├── __init__.py
└── templates
│ ├── index.html
│ └── base.html
├── requirements.txt
├── README.md
└── .gitignore
/config.py:
--------------------------------------------------------------------------------
1 | # Enable Flask's debugging features. Should be False in production
2 | DEBUG = True
--------------------------------------------------------------------------------
/run.py:
--------------------------------------------------------------------------------
1 | from app import app
2 | from livereload import Server
3 |
4 | if __name__ == '__main__':
5 | server = Server(app.wsgi_app)
6 | server.serve()
7 |
--------------------------------------------------------------------------------
/app/routes.py:
--------------------------------------------------------------------------------
1 | from flask import render_template
2 |
3 | from app import app
4 |
5 | @app.route('/')
6 | def index():
7 | return render_template("index.html")
8 |
--------------------------------------------------------------------------------
/app/__init__.py:
--------------------------------------------------------------------------------
1 | from flask import Flask
2 |
3 | app = Flask(__name__, instance_relative_config=True)
4 |
5 | from app import routes
6 |
7 | app.config.from_object('config')
--------------------------------------------------------------------------------
/app/templates/index.html:
--------------------------------------------------------------------------------
1 | {% extends "base.html" %}
2 | {% block title %}Home{% endblock %}
3 | {% block body %}
4 |
Home PageHome
5 | {% endblock %}
--------------------------------------------------------------------------------
/requirements.txt:
--------------------------------------------------------------------------------
1 | Click==7.0
2 | Flask==2.3.2
3 | itsdangerous==1.1.0
4 | Jinja2==2.11.3
5 | livereload==2.6.1
6 | MarkupSafe==1.1.1
7 | six==1.12.0
8 | tornado==6.0.3
9 | Werkzeug==2.2.3
10 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Simple flask application with livereload
2 |
3 | > Simple implementation of a basic CRUD Flask application utilizing livereload.
4 |
5 | ## Quick Start
6 |
7 | ```bash
8 | # Install dependencies
9 | pip install -r requirements.txt
10 |
11 | # Serve on localhost:5500
12 | python run.py
13 | ```
14 |
15 | ## Resources
16 | - http://flask.pocoo.org/
17 | - https://github.com/lepture/python-livereload
--------------------------------------------------------------------------------
/app/templates/base.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | {% block title %}{% endblock %}
8 |
9 |
10 |
12 |
13 | Flask & livereload
14 |
15 |
16 |
17 |
Simple Flask Application with livereload.
18 |
Change your content and watch your changes automatically reload. This functionality is similar to what webpack
19 | provides for frontend developers.
20 |
21 |
22 |
23 |
24 |
25 | {% block body %} {% endblock %}
26 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Byte-compiled / optimized / DLL files
2 | __pycache__/
3 | *.py[cod]
4 | *$py.class
5 |
6 | # C extensions
7 | *.so
8 |
9 | # Distribution / packaging
10 | .Python
11 | build/
12 | develop-eggs/
13 | dist/
14 | downloads/
15 | eggs/
16 | .eggs/
17 | lib/
18 | lib64/
19 | parts/
20 | sdist/
21 | var/
22 | wheels/
23 | pip-wheel-metadata/
24 | share/python-wheels/
25 | *.egg-info/
26 | .installed.cfg
27 | *.egg
28 | MANIFEST
29 |
30 | # PyInstaller
31 | # Usually these files are written by a python script from a template
32 | # before PyInstaller builds the exe, so as to inject date/other infos into it.
33 | *.manifest
34 | *.spec
35 |
36 | # Installer logs
37 | pip-log.txt
38 | pip-delete-this-directory.txt
39 |
40 | # Unit test / coverage reports
41 | htmlcov/
42 | .tox/
43 | .nox/
44 | .coverage
45 | .coverage.*
46 | .cache
47 | nosetests.xml
48 | coverage.xml
49 | *.cover
50 | .hypothesis/
51 | .pytest_cache/
52 |
53 | # Translations
54 | *.mo
55 | *.pot
56 |
57 | # Django stuff:
58 | *.log
59 | local_settings.py
60 | db.sqlite3
61 | db.sqlite3-journal
62 |
63 | # Flask stuff:
64 | instance/
65 | .webassets-cache
66 |
67 | # Scrapy stuff:
68 | .scrapy
69 |
70 | # Sphinx documentation
71 | docs/_build/
72 |
73 | # PyBuilder
74 | target/
75 |
76 | # Jupyter Notebook
77 | .ipynb_checkpoints
78 |
79 | # IPython
80 | profile_default/
81 | ipython_config.py
82 |
83 | # pyenv
84 | .python-version
85 |
86 | # pipenv
87 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
88 | # However, in case of collaboration, if having platform-specific dependencies or dependencies
89 | # having no cross-platform support, pipenv may install dependencies that don't work, or not
90 | # install all needed dependencies.
91 | #Pipfile.lock
92 |
93 | # celery beat schedule file
94 | celerybeat-schedule
95 |
96 | # SageMath parsed files
97 | *.sage.py
98 |
99 | # Environments
100 | .env
101 | .venv
102 | env/
103 | venv/
104 | ENV/
105 | env.bak/
106 | venv.bak/
107 |
108 | # Spyder project settings
109 | .spyderproject
110 | .spyproject
111 |
112 | # Rope project settings
113 | .ropeproject
114 |
115 | # mkdocs documentation
116 | /site
117 |
118 | # mypy
119 | .mypy_cache/
120 | .dmypy.json
121 | dmypy.json
122 |
123 | # Pyre type checker
124 | .pyre/
--------------------------------------------------------------------------------