falco-cli 0.2.2__tar.gz → 0.2.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {falco_cli-0.2.2 → falco_cli-0.2.4}/.all-contributorsrc +18 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/.github/workflows/documentation.yml +2 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/PKG-INFO +5 -9
- {falco_cli-0.2.2 → falco_cli-0.2.4}/README.md +4 -8
- falco_cli-0.2.4/docs/_static/custom.css +8 -0
- falco_cli-0.2.4/docs/changelog.rst +9 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/docs/conf.py +13 -6
- {falco_cli-0.2.2 → falco_cli-0.2.4}/docs/contributing.rst +4 -5
- {falco_cli-0.2.2 → falco_cli-0.2.4}/docs/guides/deployment.rst +10 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/docs/guides/index.rst +26 -14
- {falco_cli-0.2.2 → falco_cli-0.2.4}/docs/guides/task_queues_and_schedulers.rst +1 -1
- {falco_cli-0.2.2 → falco_cli-0.2.4}/docs/guides/tips_and_extra.rst +1 -1
- falco_cli-0.2.4/docs/index.rst +130 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/docs/install.rst +6 -3
- {falco_cli-0.2.2 → falco_cli-0.2.4}/docs/the_cli/crud.rst +9 -9
- falco_cli-0.2.4/docs/the_cli/index.rst +36 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/docs/the_cli/migrations.rst +7 -7
- {falco_cli-0.2.2 → falco_cli-0.2.4}/docs/the_cli/start_project.rst +56 -6
- {falco_cli-0.2.2 → falco_cli-0.2.4}/docs/the_cli/sync_dotenv.rst +4 -5
- {falco_cli-0.2.2 → falco_cli-0.2.4}/docs/the_cli/work.rst +1 -7
- {falco_cli-0.2.2 → falco_cli-0.2.4}/pyproject.toml +2 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco/__about__.py +1 -1
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco/commands/start_project.py +11 -1
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco/commands/work.py +1 -20
- falco_cli-0.2.4/src/falco_blueprints/project_name/.pre-commit-config.yaml +72 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco_blueprints/project_name/README.md +3 -0
- falco_cli-0.2.4/src/falco_blueprints/project_name/project_name/templates/base.html +27 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco_blueprints/project_name/project_name/templates/home.html +3 -2
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco_blueprints/project_name/project_name/users/migrations/0001_initial.py +7 -32
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco_blueprints/project_name/project_name/users/models.py +1 -1
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco_blueprints/project_name/pyproject.toml +55 -63
- {falco_cli-0.2.2 → falco_cli-0.2.4}/tests/commands/test_start_project.py +12 -0
- falco_cli-0.2.2/docs/index.rst +0 -49
- falco_cli-0.2.2/docs/the_cli/index.rst +0 -32
- falco_cli-0.2.2/src/falco_blueprints/project_name/.pre-commit-config.yaml +0 -68
- falco_cli-0.2.2/src/falco_blueprints/project_name/project_name/templates/base.html +0 -24
- {falco_cli-0.2.2 → falco_cli-0.2.4}/.github/dependabot.yml +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/.github/workflows/ci.yml +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/.github/workflows/pre-commit-auto-update.yml +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/.gitignore +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/.pre-commit-config.yaml +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/.vscode/settings.json +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/CODE_OF_CONDUCT.md +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/LICENSE +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/all-contributorsrc +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/assets/falco-logo.svg +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/demo/config/__init__.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/demo/config/asgi.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/demo/config/settings.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/demo/config/urls.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/demo/config/wsgi.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/demo/demo/__init__.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/demo/demo/core/__init__.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/demo/demo/core/apps.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/demo/demo/core/utils.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/demo/demo/orders/__init__.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/demo/demo/orders/admin.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/demo/demo/orders/apps.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/demo/demo/orders/migrations/0001_initial.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/demo/demo/orders/migrations/__init__.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/demo/demo/orders/models.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/demo/demo/products/__init__.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/demo/demo/products/admin.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/demo/demo/products/apps.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/demo/demo/products/forms.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/demo/demo/products/migrations/0001_initial.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/demo/demo/products/migrations/__init__.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/demo/demo/products/models.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/demo/demo/products/tests.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/demo/demo/products/urls.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/demo/demo/products/views.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/demo/manage.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/demo/requirements.txt +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/demo/templates/base.html +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/demo/templates/products/product_create.html +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/demo/templates/products/product_detail.html +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/demo/templates/products/product_list.html +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/demo/templates/products/product_update.html +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/docs/.rich-codex.yml +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/docs/Makefile +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/docs/_templates/partials/globaltoc-above.html +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/docs/codeofconduct.rst +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/docs/guides/avoiding_god_models.rst +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/docs/guides/database_tips.rst +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/docs/guides/dynamic_model_schema.rst +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/docs/guides/interactive_user_interfaces.rst +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/docs/guides/logging_and_monitoring.rst +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/docs/guides/multitenancy.rst +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/docs/guides/optimizing_database_access.rst +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/docs/guides/permissions_and_authorization.rst +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/docs/guides/realtime.rst +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/docs/guides/running_project_in_a_container.rst +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/docs/guides/use_sqlite_in_production.rst +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/docs/guides/writing_async_code.rst +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/docs/guides/writing_documentation.rst +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/docs/guides/writing_tests.rst +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/docs/images/logo_with_text.svg +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/docs/images/project-tree.svg +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/docs/license.rst +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/docs/make.bat +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/docs/the_cli/htmx.rst +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/docs/the_cli/make_superuser.rst +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/scripts/make_blueprints_from_demo.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/scripts/update_readme_guides.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco/__init__.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco/__main__.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco/commands/__init__.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco/commands/htmx.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco/commands/htmx_extension.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco/commands/install_crud_utils.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco/commands/make_superuser.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco/commands/model_crud.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco/commands/reset_migrations.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco/commands/rm_migrations.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco/commands/sync_dotenv.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco/utils.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco_blueprints/crud/create.html +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco_blueprints/crud/detail.html +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco_blueprints/crud/forms.py.bp +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco_blueprints/crud/list.html +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco_blueprints/crud/update.html +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco_blueprints/crud/utils.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco_blueprints/crud/views.py.bp +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco_blueprints/project_name/.env.template +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco_blueprints/project_name/.github/dependabot.yml +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco_blueprints/project_name/.github/workflows/ci.yml +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco_blueprints/project_name/.gitignore +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco_blueprints/project_name/config/__init__.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco_blueprints/project_name/config/asgi.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco_blueprints/project_name/config/settings.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco_blueprints/project_name/config/urls.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco_blueprints/project_name/config/wsgi.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco_blueprints/project_name/deploy/Dockerfile +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco_blueprints/project_name/deploy/entrypoint.sh +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco_blueprints/project_name/deploy/gunicorn.conf.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco_blueprints/project_name/manage.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco_blueprints/project_name/playground.ipynb +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco_blueprints/project_name/project_name/__init__.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco_blueprints/project_name/project_name/core/__init__.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco_blueprints/project_name/project_name/core/apps.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco_blueprints/project_name/project_name/static/vendors/htmx/htmx.min.js +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco_blueprints/project_name/project_name/users/__init__.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco_blueprints/project_name/project_name/users/admin.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco_blueprints/project_name/project_name/users/apps.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco_blueprints/project_name/project_name/users/forms.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco_blueprints/project_name/project_name/users/migrations/__init__.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco_blueprints/project_name/tests/__init__.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/src/falco_blueprints/project_name/tests/test_assert_true.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/tests/__init__.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/tests/commands/test_crud.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/tests/commands/test_htmx.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/tests/commands/test_htmx_extension.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/tests/commands/test_install_crud_utils.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/tests/commands/test_make_superuser.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/tests/commands/test_reset_migrations.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/tests/commands/test_rm_migrations.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/tests/commands/test_sync_dotenv.py +0 -0
- {falco_cli-0.2.2 → falco_cli-0.2.4}/tests/conftest.py +0 -0
|
@@ -35,6 +35,24 @@
|
|
|
35
35
|
"contributions": [
|
|
36
36
|
"code"
|
|
37
37
|
]
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"login": "shearichard",
|
|
41
|
+
"name": "Richard Shea",
|
|
42
|
+
"avatar_url": "https://avatars.githubusercontent.com/u/403435?v=4",
|
|
43
|
+
"profile": "http://mainlydata.kubadev.com",
|
|
44
|
+
"contributions": [
|
|
45
|
+
"doc"
|
|
46
|
+
]
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"login": "786raees",
|
|
50
|
+
"name": "Waqar Khan",
|
|
51
|
+
"avatar_url": "https://avatars.githubusercontent.com/u/96701299?v=4",
|
|
52
|
+
"profile": "https://lexumsoft.com/",
|
|
53
|
+
"contributions": [
|
|
54
|
+
"code"
|
|
55
|
+
]
|
|
38
56
|
}
|
|
39
57
|
],
|
|
40
58
|
"contributorsPerLine": 7,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: falco-cli
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.4
|
|
4
4
|
Summary: Enhance your Django developer experience: CLI and Guides for the Modern Developer.
|
|
5
5
|
Project-URL: Homepage, https://falco.oluwatobi.dev/
|
|
6
6
|
Project-URL: Documentation, https://falco.oluwatobi.dev/
|
|
@@ -55,17 +55,12 @@ Description-Content-Type: text/markdown
|
|
|
55
55
|
[](https://github.com/Tobi-De/falco/blob/main/LICENSE)
|
|
56
56
|

|
|
57
57
|

|
|
58
|
+

|
|
58
59
|
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
|
|
59
|
-
[](#contributors-)
|
|
60
61
|
<!-- ALL-CONTRIBUTORS-BADGE:END -->
|
|
61
62
|
|
|
62
63
|
|
|
63
|
-
|
|
64
|
-
> [!WARNING]
|
|
65
|
-
> This is a work in progress (WIP), this is also [fuzzy-couscous](https://github.com/Tobi-De/fuzzy-couscous) new cooler brother.
|
|
66
|
-
|
|
67
|
-
<!-- start-docs -->
|
|
68
|
-
|
|
69
64
|
Falco is a Django-centric toolkit designed to enhance the development experience. The CLI offers commands for initiating new projects, generating simple CRUD views for rapid prototyping, and more. Additionally, it provides a collection of guides to address common issues in web development specifically tailored to Django.
|
|
70
65
|
|
|
71
66
|
<!-- [](https://falco.oluwatobi.dev) -->
|
|
@@ -146,6 +141,8 @@ Falco is inspired by (and borrows elements from) some excellent open source proj
|
|
|
146
141
|
<td align="center" valign="top" width="14.28%"><a href="http://oluwatobi.dev"><img src="https://avatars.githubusercontent.com/u/40334729?v=4?s=100" width="100px;" alt="Tobi DEGNON"/><br /><sub><b>Tobi DEGNON</b></sub></a><br /><a href="https://github.com/Tobi-De/falco/commits?author=Tobi-De" title="Code">💻</a> <a href="https://github.com/Tobi-De/falco/commits?author=Tobi-De" title="Documentation">📖</a> <a href="https://github.com/Tobi-De/falco/commits?author=Tobi-De" title="Tests">⚠️</a></td>
|
|
147
142
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/hammadarshad1"><img src="https://avatars.githubusercontent.com/u/45298916?v=4?s=100" width="100px;" alt="Muhammad Hammad"/><br /><sub><b>Muhammad Hammad</b></sub></a><br /><a href="#ideas-hammadarshad1" title="Ideas, Planning, & Feedback">🤔</a></td>
|
|
148
143
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mathiasag7"><img src="https://avatars.githubusercontent.com/u/50689712?v=4?s=100" width="100px;" alt="mathiasag7"/><br /><sub><b>mathiasag7</b></sub></a><br /><a href="https://github.com/Tobi-De/falco/commits?author=mathiasag7" title="Code">💻</a></td>
|
|
144
|
+
<td align="center" valign="top" width="14.28%"><a href="http://mainlydata.kubadev.com"><img src="https://avatars.githubusercontent.com/u/403435?v=4?s=100" width="100px;" alt="Richard Shea"/><br /><sub><b>Richard Shea</b></sub></a><br /><a href="https://github.com/Tobi-De/falco/commits?author=shearichard" title="Documentation">📖</a></td>
|
|
145
|
+
<td align="center" valign="top" width="14.28%"><a href="https://lexumsoft.com/"><img src="https://avatars.githubusercontent.com/u/96701299?v=4?s=100" width="100px;" alt="Waqar Khan"/><br /><sub><b>Waqar Khan</b></sub></a><br /><a href="https://github.com/Tobi-De/falco/commits?author=786raees" title="Code">💻</a></td>
|
|
149
146
|
</tr>
|
|
150
147
|
</tbody>
|
|
151
148
|
</table>
|
|
@@ -162,4 +159,3 @@ Falco is inspired by (and borrows elements from) some excellent open source proj
|
|
|
162
159
|
|
|
163
160
|
<!-- ALL-CONTRIBUTORS-LIST:END -->
|
|
164
161
|
|
|
165
|
-
<!-- end-docs -->
|
|
@@ -15,17 +15,12 @@
|
|
|
15
15
|
[](https://github.com/Tobi-De/falco/blob/main/LICENSE)
|
|
16
16
|

|
|
17
17
|

|
|
18
|
+

|
|
18
19
|
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
|
|
19
|
-
[](#contributors-)
|
|
20
21
|
<!-- ALL-CONTRIBUTORS-BADGE:END -->
|
|
21
22
|
|
|
22
23
|
|
|
23
|
-
|
|
24
|
-
> [!WARNING]
|
|
25
|
-
> This is a work in progress (WIP), this is also [fuzzy-couscous](https://github.com/Tobi-De/fuzzy-couscous) new cooler brother.
|
|
26
|
-
|
|
27
|
-
<!-- start-docs -->
|
|
28
|
-
|
|
29
24
|
Falco is a Django-centric toolkit designed to enhance the development experience. The CLI offers commands for initiating new projects, generating simple CRUD views for rapid prototyping, and more. Additionally, it provides a collection of guides to address common issues in web development specifically tailored to Django.
|
|
30
25
|
|
|
31
26
|
<!-- [](https://falco.oluwatobi.dev) -->
|
|
@@ -106,6 +101,8 @@ Falco is inspired by (and borrows elements from) some excellent open source proj
|
|
|
106
101
|
<td align="center" valign="top" width="14.28%"><a href="http://oluwatobi.dev"><img src="https://avatars.githubusercontent.com/u/40334729?v=4?s=100" width="100px;" alt="Tobi DEGNON"/><br /><sub><b>Tobi DEGNON</b></sub></a><br /><a href="https://github.com/Tobi-De/falco/commits?author=Tobi-De" title="Code">💻</a> <a href="https://github.com/Tobi-De/falco/commits?author=Tobi-De" title="Documentation">📖</a> <a href="https://github.com/Tobi-De/falco/commits?author=Tobi-De" title="Tests">⚠️</a></td>
|
|
107
102
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/hammadarshad1"><img src="https://avatars.githubusercontent.com/u/45298916?v=4?s=100" width="100px;" alt="Muhammad Hammad"/><br /><sub><b>Muhammad Hammad</b></sub></a><br /><a href="#ideas-hammadarshad1" title="Ideas, Planning, & Feedback">🤔</a></td>
|
|
108
103
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mathiasag7"><img src="https://avatars.githubusercontent.com/u/50689712?v=4?s=100" width="100px;" alt="mathiasag7"/><br /><sub><b>mathiasag7</b></sub></a><br /><a href="https://github.com/Tobi-De/falco/commits?author=mathiasag7" title="Code">💻</a></td>
|
|
104
|
+
<td align="center" valign="top" width="14.28%"><a href="http://mainlydata.kubadev.com"><img src="https://avatars.githubusercontent.com/u/403435?v=4?s=100" width="100px;" alt="Richard Shea"/><br /><sub><b>Richard Shea</b></sub></a><br /><a href="https://github.com/Tobi-De/falco/commits?author=shearichard" title="Documentation">📖</a></td>
|
|
105
|
+
<td align="center" valign="top" width="14.28%"><a href="https://lexumsoft.com/"><img src="https://avatars.githubusercontent.com/u/96701299?v=4?s=100" width="100px;" alt="Waqar Khan"/><br /><sub><b>Waqar Khan</b></sub></a><br /><a href="https://github.com/Tobi-De/falco/commits?author=786raees" title="Code">💻</a></td>
|
|
109
106
|
</tr>
|
|
110
107
|
</tbody>
|
|
111
108
|
</table>
|
|
@@ -122,4 +119,3 @@ Falco is inspired by (and borrows elements from) some excellent open source proj
|
|
|
122
119
|
|
|
123
120
|
<!-- ALL-CONTRIBUTORS-LIST:END -->
|
|
124
121
|
|
|
125
|
-
<!-- end-docs -->
|
|
@@ -18,6 +18,7 @@ release = version
|
|
|
18
18
|
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
|
|
19
19
|
|
|
20
20
|
extensions = [
|
|
21
|
+
"sphinx.ext.extlinks",
|
|
21
22
|
"myst_parser",
|
|
22
23
|
"sphinx_design",
|
|
23
24
|
"sphinx_tabs.tabs",
|
|
@@ -25,10 +26,13 @@ extensions = [
|
|
|
25
26
|
"sphinx_togglebutton",
|
|
26
27
|
"sphinx_autorun",
|
|
27
28
|
"cappa.ext.docutils",
|
|
29
|
+
"sphinx_github_changelog",
|
|
30
|
+
"sphinxcontrib.mermaid",
|
|
28
31
|
]
|
|
29
32
|
extlinks = {
|
|
30
33
|
"pull": ("https://github.com/tobi-de/falco/pull/%s", "pull request #%s"),
|
|
31
34
|
"issue": ("https://github.com/tobi-de/falco/issues/%s", "issue #%s"),
|
|
35
|
+
"repo": ("https://github.com/tobi-de/falco", "github repository"),
|
|
32
36
|
}
|
|
33
37
|
|
|
34
38
|
templates_path = ["_templates"]
|
|
@@ -52,12 +56,15 @@ html_theme_options = {
|
|
|
52
56
|
"mastodon_url": "https://fosstodon.org/@tobide",
|
|
53
57
|
"github_url": "https://github.com/tobi-de/falco",
|
|
54
58
|
"twitter_url": "https://twitter.com/tobidegnon",
|
|
55
|
-
"
|
|
56
|
-
|
|
57
|
-
},
|
|
58
|
-
"dark_css_variables": {
|
|
59
|
-
"--sy-rc-theme": "0, 153, 204",
|
|
60
|
-
},
|
|
59
|
+
"accent_color": "sky",
|
|
60
|
+
"globaltoc_expand_depth": 1,
|
|
61
61
|
}
|
|
62
62
|
html_logo = "images/logo_with_text.svg"
|
|
63
63
|
html_favicon = "../assets/falco-logo.svg"
|
|
64
|
+
html_css_files = [
|
|
65
|
+
"custom.css",
|
|
66
|
+
]
|
|
67
|
+
|
|
68
|
+
# -- Mermaid configuration -----------------------------------------------------
|
|
69
|
+
mermaid_version = "10.6.1"
|
|
70
|
+
mermaid_output_format = "svg"
|
|
@@ -111,11 +111,10 @@ Pull Request Guidelines
|
|
|
111
111
|
Before you submit a pull request, check that it meets these guidelines:
|
|
112
112
|
|
|
113
113
|
1. The pull request should include tests.
|
|
114
|
-
2. If the pull request adds functionality, the docs should be updated.
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
https://travis-ci.com/Tobi-De/falco/pull_requests
|
|
114
|
+
2. If the pull request adds functionality, the docs should be updated. Add the
|
|
115
|
+
feature to the list in README.md.
|
|
116
|
+
3. The pull request should work for Python 3.10, 3.11 and 3.12. Check
|
|
117
|
+
https://github.com/Tobi-De/falco/pulls
|
|
119
118
|
and make sure that the tests pass for all supported Python versions.
|
|
120
119
|
|
|
121
120
|
Tips
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
Deploy your project
|
|
4
4
|
===================
|
|
5
5
|
|
|
6
|
+
https://www.youtube.com/watch?v=t-wsiW5mkgA
|
|
6
7
|
|
|
7
8
|
Intro
|
|
8
9
|
|
|
@@ -42,6 +43,11 @@ WSGI server
|
|
|
42
43
|
|
|
43
44
|
**Process Managers**
|
|
44
45
|
|
|
46
|
+
|
|
47
|
+
**Restart without downtime**
|
|
48
|
+
sudo supervisorctl pid gunicorn | sudo xargs kill -s HUP
|
|
49
|
+
https://blog.pecar.me/gunicorn-restart
|
|
50
|
+
|
|
45
51
|
Web server
|
|
46
52
|
----------
|
|
47
53
|
|
|
@@ -50,6 +56,10 @@ https://www.nginx.com/products/nginx-unit/
|
|
|
50
56
|
https://httpd.apache.org/
|
|
51
57
|
https://caddyserver.com/
|
|
52
58
|
|
|
59
|
+
**A small note on reverse proxies**
|
|
60
|
+
|
|
61
|
+
https://traefik.io/traefik/
|
|
62
|
+
|
|
53
63
|
Resources
|
|
54
64
|
---------
|
|
55
65
|
|
|
@@ -31,15 +31,18 @@ developer in general.
|
|
|
31
31
|
|
|
32
32
|
**The obvious ones**
|
|
33
33
|
|
|
34
|
-
.. grid:: 2
|
|
34
|
+
.. grid:: 1 1 1 2
|
|
35
|
+
:class-row: surface
|
|
36
|
+
:padding: 0
|
|
37
|
+
:gutter: 2
|
|
35
38
|
|
|
36
|
-
.. grid-item-card:: The official Django documentation
|
|
39
|
+
.. grid-item-card:: :octicon:`rocket` The official Django documentation
|
|
37
40
|
:link: https://docs.djangoproject.com/en/dev/
|
|
38
41
|
|
|
39
42
|
Django's documentation is arguably one of the best I have encountered. The **Topics guides** and **How-to guides** are particularly
|
|
40
43
|
noteworthy and should not be overlooked.
|
|
41
44
|
|
|
42
|
-
.. grid-item-card:: The HTMX documentation
|
|
45
|
+
.. grid-item-card:: :octicon:`flame` The HTMX documentation
|
|
43
46
|
:link: https://htmx.org/
|
|
44
47
|
|
|
45
48
|
The htmx documentation have everything you need to understand htmx but they also have great essays that are worth reading
|
|
@@ -48,24 +51,27 @@ developer in general.
|
|
|
48
51
|
|
|
49
52
|
**Programming principles**
|
|
50
53
|
|
|
51
|
-
.. grid:: 2
|
|
54
|
+
.. grid:: 1 1 1 2
|
|
55
|
+
:class-row: surface
|
|
56
|
+
:padding: 0
|
|
57
|
+
:gutter: 2
|
|
52
58
|
|
|
53
|
-
.. grid-item-card:: HTML First
|
|
59
|
+
.. grid-item-card:: :octicon:`zap` HTML First
|
|
54
60
|
:link: https://html-first.com/
|
|
55
61
|
|
|
56
62
|
HTML First is a set of principles that aims to make building web software easier, faster, more inclusive, and more maintainable.
|
|
57
63
|
|
|
58
|
-
.. grid-item-card:: KISS
|
|
64
|
+
.. grid-item-card:: :octicon:`smiley` KISS
|
|
59
65
|
:link: https://en.wikipedia.org/wiki/KISS_principle
|
|
60
66
|
|
|
61
67
|
Keep it simple, stupid. This is a design principle that states that most systems work best if they are kept simple rather than made complicated.
|
|
62
68
|
|
|
63
|
-
.. grid-item-card:: WYAGNI
|
|
69
|
+
.. grid-item-card:: :octicon:`clock` WYAGNI
|
|
64
70
|
:link: https://codeanthropology.substack.com/p/yagni-and-waygni?
|
|
65
71
|
|
|
66
72
|
When Are You Gonna Need It? A look at how we reduce scope, what we lose along the way, and what we could gain if we didn't. With a short story from the startup trenches.
|
|
67
73
|
|
|
68
|
-
.. grid-item-card:: 12 Factor App
|
|
74
|
+
.. grid-item-card:: :octicon:`gear` 12 Factor App
|
|
69
75
|
:link: https://12factor.net/
|
|
70
76
|
|
|
71
77
|
The twelve-factor app is a methodology for building software-as-a-service applications. These best practices are designed to enable applications to be built with portability and resilience when deployed to the web.
|
|
@@ -73,14 +79,17 @@ developer in general.
|
|
|
73
79
|
|
|
74
80
|
**Blog articles and videos**
|
|
75
81
|
|
|
76
|
-
.. grid:: 2
|
|
82
|
+
.. grid:: 1 1 1 2
|
|
83
|
+
:class-row: surface
|
|
84
|
+
:padding: 0
|
|
85
|
+
:gutter: 2
|
|
77
86
|
|
|
78
|
-
.. grid-item-card:: Adam Johnson blog
|
|
87
|
+
.. grid-item-card:: :octicon:`book` Adam Johnson blog
|
|
79
88
|
:link: https://adamj.eu/tech/
|
|
80
89
|
|
|
81
90
|
A core Django developer, he provides comprehensive and unique content covering every aspect of the framework.
|
|
82
91
|
|
|
83
|
-
.. grid-item-card:: BugBytes
|
|
92
|
+
.. grid-item-card:: :octicon:`video` BugBytes
|
|
84
93
|
:link: https://www.youtube.com/bugbytes
|
|
85
94
|
|
|
86
95
|
This is a great YouTube channel that provides a wealth of Django and HTMX content.
|
|
@@ -88,14 +97,17 @@ developer in general.
|
|
|
88
97
|
|
|
89
98
|
**The special ones**
|
|
90
99
|
|
|
91
|
-
.. grid:: 2
|
|
100
|
+
.. grid:: 1 1 1 2
|
|
101
|
+
:class-row: surface
|
|
102
|
+
:padding: 0
|
|
103
|
+
:gutter: 2
|
|
92
104
|
|
|
93
|
-
.. grid-item-card:: The Grug Brained Developer
|
|
105
|
+
.. grid-item-card:: :octicon:`book` The Grug Brained Developer
|
|
94
106
|
:link: https://grugbrain.dev
|
|
95
107
|
|
|
96
108
|
A layman's guide to thinking like the self-aware smol brained.
|
|
97
109
|
|
|
98
|
-
.. grid-item-card:: The Cult of Done
|
|
110
|
+
.. grid-item-card:: :octicon:`shield-check` The Cult of Done
|
|
99
111
|
:link: https://medium.com/@bre/the-cult-of-done-manifesto-724ca1c2ff13
|
|
100
112
|
|
|
101
113
|
The cult of done manifesto is a set of principles that aims to help you get things done.
|
|
@@ -60,7 +60,7 @@ For more complex tasks, I tend to choose a solution that supports redis as a tas
|
|
|
60
60
|
:class: dropdown
|
|
61
61
|
|
|
62
62
|
If you are using one of these you might want an automatic reload feature when files changes in dev, you can use the ``hupper``
|
|
63
|
-
python package for that purpose. It watches for file changes in the
|
|
63
|
+
python package for that purpose. It watches for file changes in the current directory and restarts the worker process automatically.
|
|
64
64
|
|
|
65
65
|
.. code-block:: bash
|
|
66
66
|
:caption: usage example
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
:layout: landing
|
|
2
|
+
:description: Falco is an opinionated toolkit for a modern Django development experience.
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
.. raw:: html
|
|
6
|
+
|
|
7
|
+
<style>
|
|
8
|
+
.yue img {
|
|
9
|
+
margin-top: 0;
|
|
10
|
+
margin-bottom: 0;
|
|
11
|
+
}
|
|
12
|
+
#head {
|
|
13
|
+
display: flex;
|
|
14
|
+
align-items: center;
|
|
15
|
+
justify-content: space-between;
|
|
16
|
+
column-gap: 20px;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
@media (max-width: 600px) {
|
|
20
|
+
#head {
|
|
21
|
+
flex-wrap: wrap;
|
|
22
|
+
justify-content: center;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
#head h1 {
|
|
27
|
+
font-size: 4.2rem;
|
|
28
|
+
margin-top: 3.4rem;
|
|
29
|
+
margin-bottom: 1rem;
|
|
30
|
+
font-weight: 700;
|
|
31
|
+
line-height: 1.2;
|
|
32
|
+
}
|
|
33
|
+
</style>
|
|
34
|
+
|
|
35
|
+
<div id="head">
|
|
36
|
+
<img src="https://raw.githubusercontent.com/Tobi-De/falco/main/assets/falco-logo.svg" width=200 height=200>
|
|
37
|
+
<div>
|
|
38
|
+
<h1>Falco</h1>
|
|
39
|
+
<div style="display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 3em;">
|
|
40
|
+
<img src="https://github.com/Tobi-De/falco/actions/workflows/documentation.yml/badge.svg">
|
|
41
|
+
<img src="https://github.com/Tobi-De/falco/actions/workflows/ci.yml/badge.svg">
|
|
42
|
+
<img src="https://badge.fury.io/py/falco-cli.svg">
|
|
43
|
+
<img src="https://img.shields.io/badge/%F0%9F%A5%9A-Hatch-4051b5.svg">
|
|
44
|
+
<img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json">
|
|
45
|
+
<img src="https://img.shields.io/badge/license-MIT-blue.svg">
|
|
46
|
+
<img src="https://img.shields.io/pypi/pyversions/falco-cli">
|
|
47
|
+
<img src="https://img.shields.io/pypi/frameworkversions/django/falco-cli">
|
|
48
|
+
<img src="https://img.shields.io/pypi/dm/falco-cli">
|
|
49
|
+
</div>
|
|
50
|
+
</div>
|
|
51
|
+
</div>
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
.. rst-class:: lead
|
|
56
|
+
|
|
57
|
+
Falco is a Django toolkit that improves development with commands for project initiation, CRUD view generation, and
|
|
58
|
+
guides addressing common web development issues tailored to Django.
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
.. container:: buttons
|
|
62
|
+
|
|
63
|
+
`Docs </install.html>`_
|
|
64
|
+
`GitHub <https://github.com/tobi-de/falco>`_
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
.. grid:: 1 1 2 3
|
|
68
|
+
:class-row: surface
|
|
69
|
+
:padding: 0
|
|
70
|
+
:gutter: 2
|
|
71
|
+
|
|
72
|
+
.. grid-item-card:: :octicon:`terminal` The CLI
|
|
73
|
+
:link: /the_cli/
|
|
74
|
+
|
|
75
|
+
The documentation for the falco command line interface (CLI).
|
|
76
|
+
|
|
77
|
+
.. grid-item-card:: :octicon:`book` Guides
|
|
78
|
+
:link: /guides/
|
|
79
|
+
|
|
80
|
+
A collection of guides on common web development topics and how to address them in django.
|
|
81
|
+
|
|
82
|
+
.. grid-item-card:: :octicon:`history` Changelog
|
|
83
|
+
:link: /changelog.html
|
|
84
|
+
|
|
85
|
+
Explore the latest updates and the change history of the Falco project.
|
|
86
|
+
|
|
87
|
+
.. grid-item-card:: :octicon:`comment-discussion` Discussion
|
|
88
|
+
:link: https://github.com/tobi-de/falco/discussions
|
|
89
|
+
|
|
90
|
+
Provide suggestions for improving the guides and share new ideas.
|
|
91
|
+
|
|
92
|
+
.. grid-item-card:: :octicon:`alert-fill` Issue
|
|
93
|
+
:link: https://github.com/tobi-de/falco/issues
|
|
94
|
+
|
|
95
|
+
Use this section to report bugs and request new features for the CLI.
|
|
96
|
+
|
|
97
|
+
.. grid-item-card:: :octicon:`people` Contributing
|
|
98
|
+
:link: /contributing.html
|
|
99
|
+
|
|
100
|
+
Learn how to contribute to the Falco project.
|
|
101
|
+
|
|
102
|
+
-----
|
|
103
|
+
|
|
104
|
+
.. raw:: html
|
|
105
|
+
|
|
106
|
+
<h2>Contributors</h2>
|
|
107
|
+
|
|
108
|
+
Thanks to the following wonderful people (`emoji key <https://allcontributors.org/docs/en/emoji-key>`_) who have helped build ``falco``.
|
|
109
|
+
|
|
110
|
+
.. include:: ../README.md
|
|
111
|
+
:parser: myst_parser.sphinx_
|
|
112
|
+
:start-after: <!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
|
|
113
|
+
:end-before: <!-- ALL-CONTRIBUTORS-LIST:END -->
|
|
114
|
+
|
|
115
|
+
.. toctree::
|
|
116
|
+
:caption: Getting started
|
|
117
|
+
:hidden:
|
|
118
|
+
|
|
119
|
+
install
|
|
120
|
+
the_cli/index
|
|
121
|
+
guides/index
|
|
122
|
+
|
|
123
|
+
.. toctree::
|
|
124
|
+
:caption: Development
|
|
125
|
+
:hidden:
|
|
126
|
+
|
|
127
|
+
contributing
|
|
128
|
+
codeofconduct
|
|
129
|
+
license
|
|
130
|
+
changelog
|
|
@@ -13,14 +13,17 @@ Falco is available on PyPI and can be installed with pip or your favorite Python
|
|
|
13
13
|
Next Up
|
|
14
14
|
-------
|
|
15
15
|
|
|
16
|
-
.. grid:: 2
|
|
16
|
+
.. grid:: 1 1 1 2
|
|
17
|
+
:class-row: surface
|
|
18
|
+
:gutter: 2
|
|
19
|
+
:padding: 0
|
|
17
20
|
|
|
18
|
-
.. grid-item-card:: The CLI
|
|
21
|
+
.. grid-item-card:: :octicon:`terminal` The CLI
|
|
19
22
|
:link: /the_cli/
|
|
20
23
|
|
|
21
24
|
The documentation for the ``falco`` command line interface (CLI).
|
|
22
25
|
|
|
23
|
-
.. grid-item-card:: Guides
|
|
26
|
+
.. grid-item-card:: :octicon:`book` Guides
|
|
24
27
|
:link: /guides/
|
|
25
28
|
|
|
26
29
|
A collection of guides on common web development topics and how to address them in django.
|
|
@@ -10,7 +10,7 @@ crud
|
|
|
10
10
|
|
|
11
11
|
This command generates htmx-powered create, read, update, and delete views for your model. It follows a similar idea
|
|
12
12
|
as `neapolitan <https://github.com/carltongibson/neapolitan>`_, but with a completely different approach. Instead of inheriting
|
|
13
|
-
from a class as
|
|
13
|
+
from a class as you would with ``neapolitan``, this command generates basic ``views``, ``urls``, and HTML ``templates``, and updates or overrides the
|
|
14
14
|
corresponding files in your project. I prefer this approach because, at the end, you'll have all the new code directly in front of you. It's easily
|
|
15
15
|
accessible and you can update it as you see fit. The idea is to accelerate project prototyping. Write a model and you instantly have views ready for it.
|
|
16
16
|
|
|
@@ -19,28 +19,28 @@ accessible and you can update it as you see fit. The idea is to accelerate proje
|
|
|
19
19
|
:class: hint dropdown
|
|
20
20
|
|
|
21
21
|
I think class-based views get complex faster than function-based views. Both have their use cases, but function-based views
|
|
22
|
-
stay simpler to manage longer in my experience. There is an excellent document on the topic, read
|
|
22
|
+
stay simpler to manage longer in my experience. There is an excellent document on the topic, read `django views the right way <https://spookylukey.github.io/django-views-the-right-way/>`_.
|
|
23
23
|
|
|
24
|
-
If you want to see an example of the generated code, check out the `source code of the demo project <https://github.com/Tobi-De/falco/tree/main/demo/products
|
|
24
|
+
If you want to see an example of the generated code, check out the `source code of the demo project <https://github.com/Tobi-De/falco/tree/main/demo/demo/products>`_.
|
|
25
25
|
|
|
26
26
|
Python code
|
|
27
27
|
^^^^^^^^^^^
|
|
28
28
|
|
|
29
29
|
All Python code added by this command will be in **append** mode, meaning it won't override the content of your existing files.
|
|
30
30
|
Instead, it will add code at the end or create the files if they are missing. The files that will be modified
|
|
31
|
-
are ``forms.py``, ``urls.py``, and ``views.py``. For brevity, I'll only show an example of what the
|
|
31
|
+
are ``forms.py``, ``urls.py``, and ``views.py``. For brevity, I'll only show an example of what the ``urls.py`` file
|
|
32
32
|
might look like for a model named ``Product`` in a django app named ``products``.
|
|
33
33
|
|
|
34
34
|
.. code-block::bash
|
|
35
35
|
|
|
36
36
|
falco crud product.products
|
|
37
37
|
|
|
38
|
-
.. literalinclude:: ../../demo/products/urls.py
|
|
38
|
+
.. literalinclude:: ../../demo/demo/products/urls.py
|
|
39
39
|
|
|
40
40
|
As you can see, the convention is quite simple: ``<model_name_lower>_<operation>``. Note that if you don't specify the model name and run
|
|
41
41
|
``falco crud products``, the same code with the described conventions will be generated for all the models in the ``products`` app.
|
|
42
|
-
Now, if you're anything like me, the code above might have made you cringe due to the excessive repetitions of the
|
|
43
|
-
This wouldn't have been the case if the model was called
|
|
42
|
+
Now, if you're anything like me, the code above might have made you cringe due to the excessive repetitions of the word ``product``.
|
|
43
|
+
This wouldn't have been the case if the model was called ``Category``, for example. For these specific cases, there is an ``--entry-point`` option.
|
|
44
44
|
|
|
45
45
|
Let's try it.
|
|
46
46
|
|
|
@@ -66,7 +66,7 @@ Let's try it.
|
|
|
66
66
|
]
|
|
67
67
|
|
|
68
68
|
Much cleaner, specifying that option means you consider the ``Product`` model as the entry point of your ``products`` app.
|
|
69
|
-
So, instead of the base URL of the app looking like
|
|
69
|
+
So, instead of the base URL of the app looking like ``products/products/``, it will just be ``products/``, assuming you registered your URLs in
|
|
70
70
|
your root URL config like this:
|
|
71
71
|
|
|
72
72
|
.. code-block:: python
|
|
@@ -99,7 +99,7 @@ Four files are generated:
|
|
|
99
99
|
* ``<model_name_lower>_update.html``
|
|
100
100
|
|
|
101
101
|
There is no ``<model_name_lower>_delete.html`` file because deletion is handled in the ``<model_name_lower>_list.html``.
|
|
102
|
-
Each generated HTML file
|
|
102
|
+
Each generated HTML file extends a ``base.html`` template. Therefore, make sure you have a top-level ``base.html`` file in
|
|
103
103
|
your templates directory.
|
|
104
104
|
|
|
105
105
|
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
The CLI
|
|
2
|
+
=======
|
|
3
|
+
|
|
4
|
+
The falco CLI is included with the package installation. It provides a set of commands that I hope will be useful to you throughout the
|
|
5
|
+
lifecycle of your project, from project setup to deployment.
|
|
6
|
+
|
|
7
|
+
.. note::
|
|
8
|
+
|
|
9
|
+
If you encounter any issues or unexpected behavior with the CLI, please report it on
|
|
10
|
+
`GitHub <https://github.com/tobi-de/falco/discussions>`_.
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
The entrypoint for the CLI is the ``falco`` command. It is used to execute all other subcommands.
|
|
14
|
+
Most of these commands rely on the presence of the ``manage.py`` file, so ensure that you run them from the root directory of your Django project.
|
|
15
|
+
Additionally, these commands require acces to your virtual environment, so make sure to activate it before executing any command.
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
.. important::
|
|
19
|
+
|
|
20
|
+
There is a known issue where certain commands, which depend on your Django project environment to work, such as the ``work`` or the
|
|
21
|
+
``crud`` commands, might occasionally fail to run. The exact cause of this issue is not entirely clear at the moment, and I've
|
|
22
|
+
experienced it a few times myself. The simplest solution for now is to install the ``falco-cli`` in the same virtual environment as your project.
|
|
23
|
+
This should resolve the issue.
|
|
24
|
+
|
|
25
|
+
.. cappa:: falco.__main__.Falco
|
|
26
|
+
|
|
27
|
+
.. toctree::
|
|
28
|
+
:hidden:
|
|
29
|
+
|
|
30
|
+
start_project
|
|
31
|
+
crud
|
|
32
|
+
htmx
|
|
33
|
+
work
|
|
34
|
+
migrations
|
|
35
|
+
sync_dotenv
|
|
36
|
+
make_superuser
|
|
@@ -14,8 +14,8 @@ It is a good idea to delete all migrations and recreate them from scratch when d
|
|
|
14
14
|
This ensures a clean base without any remnants of testing or experimentation from the initial development phase. Even during development,
|
|
15
15
|
when exploring new ideas, it is often necessary to delete all migrations and start over. This command is designed for these scenarios,
|
|
16
16
|
as it deletes all migrations in your project.
|
|
17
|
-
The command checks the debug value of your project using the
|
|
18
|
-
It takes an optional argument,
|
|
17
|
+
The command checks the debug value of your project using the ``manage.py`` file. If the debug value is set to ``False``, the command will fail.
|
|
18
|
+
It takes an optional argument, ``apps_dir``, which specifies the directory containing your apps. If no argument is provided, it assumes that the apps
|
|
19
19
|
directory has the same name as the current parent directory. For example, if your project is named ``my_awesome_project``, the command will assume that
|
|
20
20
|
the apps directory is a subdirectory with the same name, i.e., ``my_awesome_project/my_awesome_project``. This is the default project layout created
|
|
21
21
|
by the `falco startproject </the_cli/start_project.html>`_ command.
|
|
@@ -33,8 +33,8 @@ by the `falco startproject </the_cli/start_project.html>`_ command.
|
|
|
33
33
|
This command will delete all your migrations files, be sure to commit your changes before running this command.
|
|
34
34
|
|
|
35
35
|
After deleting all your migrations, your next step might likely be to reset your database using a command like ``reset-db``
|
|
36
|
-
from `django-extensions <https://django-extensions.readthedocs.io/en/latest
|
|
37
|
-
then the following command might be a better option than running
|
|
36
|
+
from `django-extensions <https://django-extensions.readthedocs.io/en/latest/>`_. However, if you want to preserve your data,
|
|
37
|
+
then the following command might be a better option than running ``rm-migrations`` altogether.
|
|
38
38
|
|
|
39
39
|
reset-migrations
|
|
40
40
|
----------------
|
|
@@ -58,7 +58,7 @@ This command works exactly like the ``rm-migration`` command but goes a bit furt
|
|
|
58
58
|
|
|
59
59
|
The `migrate fake <https://docs.djangoproject.com/en/5.0/ref/django-admin/#cmdoption-migrate-fake>`_ command apply migrations without running
|
|
60
60
|
the actual SQL.
|
|
61
|
-
Since the ``reset-migrations`` depends on the
|
|
62
|
-
repo needs to be in a clean state unless you use the
|
|
61
|
+
Since the ``reset-migrations`` depends on the ``rm-migrations`` command, it performs the same checks: it checks your Django ``DEBUG`` value and your Git
|
|
62
|
+
repo needs to be in a clean state unless you use the ``--skip-git-check`` option.
|
|
63
63
|
|
|
64
|
-
This command allows you to restore your migrations to their initial state without losing any existing data
|
|
64
|
+
This command allows you to restore your migrations to their initial state without losing any existing data.
|