Skip to content

Flask Example Should use Pinned Flask Version #1114

Open
@elibroftw

Description

@elibroftw

Observations

In the python environment example, Flask has no pinned version. Additionally, other python tooling, like uv is completely ignored. If this is supposed to replace other abstract tooling like pip, requirements.txt, uv, poetry, pipfile, it should be more concrete.

Problem

As someone new to Nix (I use it only for work, and don't like modifying anything), but knows Python and Flask, the current Python-Flask example does not factor into consideration real Python Flask backend projects. Existing projects will use at least a requirements.txt, but projects created recently will probably be using poetry or uv. I've personally had to do a Flask v2 to v3 migration, so it is odd that Flask isn't even pinned to a version like 3. How would someone pin to 3.X?

Also, I notice that we are running the Python application in the shell. This is good for a simple hello world app, but when a project is complicated, a Debugger is good. I usually run a debugger using VSCode. It's unclear whether the VSCode Python debugger would work even if it ran inside the nix shell.

Approaches

The example should be applicable to new Python projects as well as existing Python projects that Python developments can migrate. My website's source code has plenty of room for improvement. It uses a requirements.txt file and is deployed on Heroku. It should be deployed using Docker but the dev environment itself could be better. I'll create another issue too regarding "deployment example"

Willing to help?

Only with answering questions / reviewing

Metadata

Metadata

Assignees

No one assigned

    Labels

    siteImprovements to the site infrastructure or content presentation

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions