Feature rich robust FastAPI template.

Overview

python version Build status version

Flexible and Lightweight general-purpose template for FastAPI.

Usage

⚠️ Git, Python and Poetry must be installed and accessible ⚠️

Poetry version must be greater or equal than 1.1.8. Otherwise it won't be able to install SQLAlchemy.

python3 -m pip install fastapi_template
python3 -m fastapi_template
# or fastapi_template
# Answer all the questions
# 🍪 Enjoy your new project 🍪
cd new_project
docker-compose -f deploy/docker-compose.yml --project-directory . build
docker-compose -f deploy/docker-compose.yml --project-directory . up --build

If you want to install in from sources then try this:

python3 -m pip install poetry
python3 -m pip install .
python3 -m fastapi_template

Also you can use it with docker.

docker run --rm -it -v "$(pwd):/projects" s3rius/fastapi_template

Templator in action

Features

One of the coolest features is that this project is extremely small and handy. You can choose between different databases and even ORMs. Currently SQLAlchemy1.4, TortoiseORM and Ormar are supported.

TUI and CLI and excellent code documentation.

Generator features:

  • Different databases support;
  • Different ORMs support;
  • Optional migrations for each ORM;
  • redis support;
  • different CI\CD;
  • Kubernetes config generation;
  • Demo routers and models;
  • Pre-commit integrations;
  • Generated tests;
  • Tests for the generator itself.

This project can handle arguments passed through command line.

$ python -m fastapi_template --help

usage: FastAPI template [-h] [--version] [--name PROJECT_NAME]
                        [--description PROJECT_DESCRIPTION]
                        [--db {none,sqlite,mysql,postgresql}]
                        [--orm {ormar,sqlalchemy,tortoise}]
                        [--ci {none,gitlab,github}] [--redis] [--migrations]
                        [--kube] [--dummy] [--routers] [--swagger] [--force]

optional arguments:
  -h, --help            show this help message and exit
  --version, -V         Prints current version
  --name PROJECT_NAME   Name of your awesome project
  --description PROJECT_DESCRIPTION
                        Project description
  --db {none,sqlite,mysql,postgresql}
                        Database
  --orm {ormar,sqlalchemy,tortoise}
                        ORM
  --ci {none,gitlab,github}
                        Choose CI support
  --redis               Add redis support
  --migrations          Add migrations support
  --kube                Add kubernetes configs
  --dummy, --dummy-model
                        Add dummy model
  --routers             Add exmaple routers
  --swagger             Eanble self-hosted swagger
  --force               Owerrite directory if it exists
Comments
  • Request object isn't passed as argument

    Request object isn't passed as argument

    Thanks for this package. I have created graphql app using template but getting below error. It seems fastapi doesn't pass request object.

    ERROR:    Exception in ASGI application
    Traceback (most recent call last):
      File "/Users/test/Library/Caches/pypoetry/virtualenvs/fastapi-graphql-practice-1UuEp-7G-py3.10/lib/python3.10/site-packages/uvicorn/protocols/websockets/websockets_impl.py", line 184, in run_asgi
        result = await self.app(self.scope, self.asgi_receive, self.asgi_send)
      File "/Users/test/Library/Caches/pypoetry/virtualenvs/fastapi-graphql-practice-1UuEp-7G-py3.10/lib/python3.10/site-packages/uvicorn/middleware/proxy_headers.py", line 75, in __call__
        return await self.app(scope, receive, send)
      File "/Users/test/Library/Caches/pypoetry/virtualenvs/fastapi-graphql-practice-1UuEp-7G-py3.10/lib/python3.10/site-packages/fastapi/applications.py", line 261, in __call__
        await super().__call__(scope, receive, send)
      File "/Users/test/Library/Caches/pypoetry/virtualenvs/fastapi-graphql-practice-1UuEp-7G-py3.10/lib/python3.10/site-packages/starlette/applications.py", line 112, in __call__
        await self.middleware_stack(scope, receive, send)
      File "/Users/test/Library/Caches/pypoetry/virtualenvs/fastapi-graphql-practice-1UuEp-7G-py3.10/lib/python3.10/site-packages/starlette/middleware/errors.py", line 146, in __call__
        await self.app(scope, receive, send)
      File "/Users/test/Library/Caches/pypoetry/virtualenvs/fastapi-graphql-practice-1UuEp-7G-py3.10/lib/python3.10/site-packages/starlette/exceptions.py", line 58, in __call__
        await self.app(scope, receive, send)
      File "/Users/test/Library/Caches/pypoetry/virtualenvs/fastapi-graphql-practice-1UuEp-7G-py3.10/lib/python3.10/site-packages/fastapi/middleware/asyncexitstack.py", line 21, in __call__
        raise e
      File "/Users/test/Library/Caches/pypoetry/virtualenvs/fastapi-graphql-practice-1UuEp-7G-py3.10/lib/python3.10/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__
        await self.app(scope, receive, send)
      File "/Users/test/Library/Caches/pypoetry/virtualenvs/fastapi-graphql-practice-1UuEp-7G-py3.10/lib/python3.10/site-packages/starlette/routing.py", line 656, in __call__
        await route.handle(scope, receive, send)
      File "/Users/test/Library/Caches/pypoetry/virtualenvs/fastapi-graphql-practice-1UuEp-7G-py3.10/lib/python3.10/site-packages/starlette/routing.py", line 315, in handle
        await self.app(scope, receive, send)
      File "/Users/test/Library/Caches/pypoetry/virtualenvs/fastapi-graphql-practice-1UuEp-7G-py3.10/lib/python3.10/site-packages/starlette/routing.py", line 77, in app
        await func(session)
      File "/Users/test/Library/Caches/pypoetry/virtualenvs/fastapi-graphql-practice-1UuEp-7G-py3.10/lib/python3.10/site-packages/fastapi/routing.py", line 264, in app
        solved_result = await solve_dependencies(
      File "/Users/test/Library/Caches/pypoetry/virtualenvs/fastapi-graphql-practice-1UuEp-7G-py3.10/lib/python3.10/site-packages/fastapi/dependencies/utils.py", line 498, in solve_dependencies
        solved_result = await solve_dependencies(
      File "/Users/test/Library/Caches/pypoetry/virtualenvs/fastapi-graphql-practice-1UuEp-7G-py3.10/lib/python3.10/site-packages/fastapi/dependencies/utils.py", line 498, in solve_dependencies
        solved_result = await solve_dependencies(
      File "/Users/test/Library/Caches/pypoetry/virtualenvs/fastapi-graphql-practice-1UuEp-7G-py3.10/lib/python3.10/site-packages/fastapi/dependencies/utils.py", line 498, in solve_dependencies
        solved_result = await solve_dependencies(
      File "/Users/test/Library/Caches/pypoetry/virtualenvs/fastapi-graphql-practice-1UuEp-7G-py3.10/lib/python3.10/site-packages/fastapi/dependencies/utils.py", line 523, in solve_dependencies
        solved = await solve_generator(
      File "/Users/test/Library/Caches/pypoetry/virtualenvs/fastapi-graphql-practice-1UuEp-7G-py3.10/lib/python3.10/site-packages/fastapi/dependencies/utils.py", line 443, in solve_generator
        cm = asynccontextmanager(call)(**sub_values)
      File "/Users/test/.pyenv/versions/3.10.2/lib/python3.10/contextlib.py", line 314, in helper
        return _AsyncGeneratorContextManager(func, args, kwds)
      File "/Users/test/.pyenv/versions/3.10.2/lib/python3.10/contextlib.py", line 103, in __init__
        self.gen = func(*args, **kwds)
    TypeError: get_db_session() missing 1 required positional argument: 'request'
    INFO:     connection open
    INFO:     connection closed
    
    opened by devNaresh 16
  • Add optional monitoring solution (Prometheus, Datadog ...)

    Add optional monitoring solution (Prometheus, Datadog ...)

    Hello there !

    I thought it would be a nice complement to add one or multiple services to be able to monitor the code, the calls, the performances.

    I know that a lot of people use Prometheus, so I thought it could be nice. But I also know that DataDog also provides methods to monitor the code.

    What do you think ?

    opened by sorasful 9
  • Can't open http://0.0.0.0:8000

    Can't open http://0.0.0.0:8000

    Maybe I'm being dense, but I can't seem to access the web server. I've got the containers running following the README, but navigating to HTTP://0.0.0.0:8000 brings up nothing.... What am I missing?

    opened by writeson 8
  • MySQL connection refused when pytest executed in github action

    MySQL connection refused when pytest executed in github action

    I created new FastAPI project with below command, and push it to my own repository to check github action working properly.

    python3 -m fastapi_template --name test --description test --api-type rest --db mysql --orm sqlalchemy --ci github --redis --migrations --dummy --routers --swagger --sentry
    

    But, github action keep throws same error in pytest stage.

    E pymysql.err.OperationalError: (1044, "Access denied for user 'test'@'%' to database 'mysql'")

    I think it's related with 'localhost' problem, but not sure.

    opened by gwanryo 7
  • Add a reverse proxy ?

    Add a reverse proxy ?

    Hi there !

    Since this template is very complete and handle a lot of things, I was wondering if it could be a good idea to add an option to set up a reverse proxy (Nginx or Traefik or both).

    Since anyway, it's most likely that a lot of people will go through this phase and each time, it's kind of a pain. And now we have solutions to automatically generate SSL certificates with LetsEncrypt, so I was thinking about this.

    What do you think ?

    opened by sorasful 6
  • Add piccolo support

    Add piccolo support

    We need to add spport for this ORM.

    pypi url: https://pypi.org/project/piccolo/ Homepage: https://github.com/piccolo-orm/piccolo Required python: >=3.7.0

    enhancement 
    opened by s3rius 6
  • Can't seem to get alembic working

    Can't seem to get alembic working

    Hi great template

    I'm trying this out locally with Postgres + alembic.

    I've added these environment variables:

    MDS_RELOAD=True
    MDS_DB_PORT=5432
    MDS_DB_HOST=localhost
    MDS_DB_PASS=mds
    MDS_POSTGRES_PASSWORD=mds
    MDS_POSTGRES_USER=mds
    MDS_POSTGRES_DB=mds
    

    Started the environment with docker compose:

    docker-compose -f deploy/docker-compose.yml -f deploy/docker-compose.dev.yml --project-directory . up
    

    When I try to run the migrations alembic revision --autogenerate I get an auth error:

    asyncpg.exceptions.InvalidPasswordError: password authentication failed for user "mds"

    Haven't changed any values in the env, mds should be the right password for the local setup. Any ideas?

    opened by eh-93 5
  • Error building Docker image in a fresh project

    Error building Docker image in a fresh project

    Hello!

    Thanks for this great package! Lately, I have started encountering an error when creating a new project (no modifications) and building the docker image from the provided Dockerfile.

    [+] Building 22.9s (11/14)
     => [internal] load build definition from Dockerfile                                                                                                                                                          0.0s
     => => transferring dockerfile: 617B                                                                                                                                                                          0.0s
     => [internal] load .dockerignore                                                                                                                                                                             0.0s
     => => transferring context: 35B                                                                                                                                                                              0.0s
     => [internal] load metadata for docker.io/library/python:3.9.6-slim-buster                                                                                                                                   1.5s
     => [ 1/10] FROM docker.io/library/python:[email protected]:28bed4c51c3b531159d8affc0225701edb16a7deacfdfdfb220a944405c39314                                                                           0.0s
     => [internal] load build context                                                                                                                                                                             0.0s
     => => transferring context: 5.60kB                                                                                                                                                                           0.0s
     => CACHED [ 2/10] RUN apt-get update && apt-get install -y   gcc   && rm -rf /var/lib/apt/lists/*                                                                                                            0.0s
     => [ 3/10] RUN pip install setuptools wheel poetry==1.1.13                                                                                                                                                  13.9s
     => [ 4/10] RUN poetry config virtualenvs.create false                                                                                                                                                        0.5s
     => [ 5/10] COPY pyproject.toml poetry.lock /app/src/                                                                                                                                                         0.0s
     => [ 6/10] WORKDIR /app/src                                                                                                                                                                                  0.0s
     => ERROR [ 7/10] RUN poetry install                                                                                                                                                                          6.9s
    ------
     > [ 7/10] RUN poetry install:
    #0 0.367 Skipping virtualenv creation, as specified in config file.
    #0 0.931 Installing dependencies from lock file
    #0 1.716
    #0 1.716 Package operations: 81 installs, 1 update, 1 removal
    #0 1.716
    #0 1.717   • Removing setuptools (65.5.0)
    #0 1.933   • Installing smmap (5.0.0)
    #0 2.558   • Installing gitdb (4.0.9)
    #0 2.559   • Installing mccabe (0.6.1)
    #0 2.560   • Installing pbr (5.11.0)
    #0 2.562   • Installing pycodestyle (2.8.0)
    #0 2.564   • Installing pyflakes (2.4.0)
    #0 3.497   • Installing docutils (0.19)
    #0 3.498   • Installing flake8 (4.0.1)
    #0 3.499   • Installing gitpython (3.1.29)
    #0 3.500   • Installing pyyaml (6.0)
    #0 3.502   • Installing sniffio (1.3.0)
    #0 3.504   • Installing snowballstemmer (2.2.0)
    #0 3.505   • Installing stevedore (4.1.0)
    #0 4.560   • Installing anyio (3.6.2)
    #0 4.562   • Installing attrs (22.1.0)
    #0 4.563   • Installing bandit (1.7.4)
    #0 4.563   • Installing eradicate (2.1.0)
    #0 4.564   • Installing exceptiongroup (1.0.0)
    #0 4.568   • Installing flake8-polyfill (1.0.2)
    #0 4.569   • Installing iniconfig (1.1.1)
    #0 4.569   • Installing h11 (0.12.0)
    #0 4.570   • Installing isort (5.10.1)
    #0 5.331   • Updating packaging (20.9 -> 21.3)
    #0 5.438   • Installing pluggy (1.0.0)
    #0 5.491   • Installing pydocstyle (6.1.1)
    #0 5.512   • Installing pygments (2.13.0)
    #0 5.572   • Installing restructuredtext-lint (1.4.0)
    #0 5.605   • Installing tomli (2.0.1)
    #0 5.617   • Installing typing-extensions (4.4.0)
    #0 6.288
    #0 6.288   EnvCommandError
    #0 6.288
    #0 6.288   Command ['/usr/local/bin/python', '-m', 'pip', 'install', '--no-deps', '/root/.cache/pypoetry/artifacts/04/32/b5/e5036c2c17882570082f8f5147166579794efaa6ebc2fc7ab5a0aea9cb/restructuredtext_lint-1.4.0.tar.gz'] errored with the following return code 1, and output:
    #0 6.288   Processing /root/.cache/pypoetry/artifacts/04/32/b5/e5036c2c17882570082f8f5147166579794efaa6ebc2fc7ab5a0aea9cb/restructuredtext_lint-1.4.0.tar.gz
    #0 6.288       ERROR: Command errored out with exit status 1:
    #0 6.288        command: /usr/local/bin/python -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-req-build-4yuak16k/setup.py'"'"'; __file__='"'"'/tmp/pip-req-build-4yuak16k/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-gjjq5qo1
    #0 6.288            cwd: /tmp/pip-req-build-4yuak16k/
    #0 6.288       Complete output (3 lines):
    #0 6.288       Traceback (most recent call last):
    #0 6.288         File "<string>", line 1, in <module>
    #0 6.288       ModuleNotFoundError: No module named 'setuptools'
    #0 6.288       ----------------------------------------
    #0 6.288   WARNING: Discarding file:///root/.cache/pypoetry/artifacts/04/32/b5/e5036c2c17882570082f8f5147166579794efaa6ebc2fc7ab5a0aea9cb/restructuredtext_lint-1.4.0.tar.gz. Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
    #0 6.288   ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
    #0 6.288   WARNING: You are using pip version 21.2.4; however, version 22.3 is available.
    #0 6.288   You should consider upgrading via the '/usr/local/bin/python -m pip install --upgrade pip' command.
    #0 6.288
    #0 6.289
    #0 6.289   at /usr/local/lib/python3.9/site-packages/poetry/utils/env.py:1195 in _run
    #0 6.317       1191│                 output = subprocess.check_output(
    #0 6.317       1192│                     cmd, stderr=subprocess.STDOUT, **kwargs
    #0 6.317       1193│                 )
    #0 6.317       1194│         except CalledProcessError as e:
    #0 6.317     → 1195│             raise EnvCommandError(e, input=input_)
    #0 6.317       1196│
    #0 6.318       1197│         return decode(output)
    #0 6.318       1198│
    #0 6.318       1199│     def execute(self, bin, *args, **kwargs):
    #0 6.318
    ------
    failed to solve: executor failed running [/bin/sh -c poetry install]: exit code: 1
    
    opened by jegork 5
  • Possible Bug - `get_db_session` reference included in `{{cookiecutter.project_name}}web.gql.context.py`when using Tortoise ORM

    Possible Bug - `get_db_session` reference included in `{{cookiecutter.project_name}}web.gql.context.py`when using Tortoise ORM

    Awesome project! Really love what you've done here!

    I ran into what I think is a bug with the project generation logic. I think it's a simple fix / issue, so I'd be happy to contribute a PR, but wanted to run this by you first.

    In the context.py file of the gql package, there's an import for from {{cookiecutter.project_name}}.db.dependencies import get_db_session: https://github.com/s3rius/FastAPI-template/blob/156883798ab4ec54d97080c77a34d366b8484f95/fastapi_template/template/%7B%7Bcookiecutter.project_name%7D%7D/%7B%7Bcookiecutter.project_name%7D%7D/web/gql/context.py#L16-L18

    This import does not appear to be used when using Tortoise ORM, however:

    https://github.com/s3rius/FastAPI-template/blob/156883798ab4ec54d97080c77a34d366b8484f95/fastapi_template/template/%7B%7Bcookiecutter.project_name%7D%7D/%7B%7Bcookiecutter.project_name%7D%7D/web/gql/context.py#L38-L42

    In fact, with Tortoise ORM, there doesn't appear to be a dependencies.py file at all, see here.

    Leaving the import statement throws an error with pytest:

    =========================================================================================================== ERRORS ============================================================================================================
    ________________________________________________________________________________________________ ERROR collecting test session ________________________________________________________________________________________________
    /usr/lib/python3.8/importlib/__init__.py:127: in import_module
        return _bootstrap._gcd_import(name[level:], package, level)
    <frozen importlib._bootstrap>:1014: in _gcd_import
        ???
    <frozen importlib._bootstrap>:991: in _find_and_load
        ???
    <frozen importlib._bootstrap>:975: in _find_and_load_unlocked
        ???
    <frozen importlib._bootstrap>:671: in _load_unlocked
        ???
    ../../.cache/pypoetry/virtualenvs/gremlinengine--i0qMi2L-py3.8/lib/python3.8/site-packages/_pytest/assertion/rewrite.py:168: in exec_module
        exec(co, module.__dict__)
    GremlinEngine/conftest.py:19: in <module>
        from GremlinEngine.web.application import get_app
    GremlinEngine/web/application.py:24: in <module>
        from GremlinEngine.web.graphql.router import gql_router
    GremlinEngine/web/graphql/router.py:4: in <module>
        from GremlinEngine.web.graphql import dummy, echo, redis
    GremlinEngine/web/graphql/dummy/__init__.py:3: in <module>
        from GremlinEngine.web.graphql.dummy.mutation import Mutation
    GremlinEngine/web/graphql/dummy/mutation.py:5: in <module>
        from GremlinEngine.web.graphql.context import Context
    GremlinEngine/web/graphql/context.py:5: in <module>
        from GremlinEngine.db.dependencies import get_db_session
    E   ModuleNotFoundError: No module named 'GremlinEngine.db.dependencies'
    
    

    Removing the import appears to cause no other issues and resolves the error. Seems like the if/else jinja statement in the gql.context.py template to import dependencies and get_db_session should be updated to also take into account which database is being used? This is my first in-depth foray into standalone Python ORMs (I've been a Django guy, mostly), so sorry if I'm missing something here.

    opened by JSv4 5
  • Failed tests on initilization and unreachable /w Docker-Compose

    Failed tests on initilization and unreachable /w Docker-Compose

    python3 -m fastapi_template                                                                                                                  ✔  ccdemo 3.9.10  
    Project name: fatemplate
    Project description: fatemplate
    Removing resources for disabled feature Gitlab CI...
    Removing resources for disabled feature Tortoise ORM...
    Removing resources for disabled feature Ormar ORM...
    Removing resources for disabled feature PsycoPG...
    Removing resources for disabled feature MySQL DB...
    Removing resources for disabled feature SQLite DB...
    cleanup complete!
    ⭐ Placing resources nicely in your new project ⭐
    Resources are happy to be where they are needed the most.
    hint: Using 'master' as the name for the initial branch. This default branch name
    hint: is subject to change. To configure the initial branch name to use in all
    hint: of your new repositories, which will suppress this warning, call:
    hint: 
    hint:   git config --global init.defaultBranch <name>
    hint: 
    hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
    hint: 'development'. The just-created branch can be renamed via this command:
    hint: 
    hint:   git branch -m <name>
    Git repository initialized.
    Added files to index.
    Updating dependencies
    Resolving dependencies... (14.9s)
    
    Writing lock file
    
    No dependencies to install or update
    
    Installing the current project: fatemplate (0.1.0)
    pre-commit installed at .git/hooks/pre-commit
    pre-commit installed.
    Check python ast.........................................................Passed
    Trim Trailing Whitespace.................................................Failed
    - hook id: trailing-whitespace
    - exit code: 1
    - files were modified by this hook
    
    Fixing fatemplate/web/application.py
    Fixing deploy/docker-compose.yml
    Fixing fatemplate/settings.py
    Fixing fatemplate/web/lifetime.py
    Fixing deploy/kube/db.yml
    
    Check Toml...............................................................Passed
    Fix End of Files.........................................................Failed
    - hook id: end-of-file-fixer
    - exit code: 1
    - files were modified by this hook
    
    Fixing deploy/docker-compose.yml
    Fixing fatemplate/tests/test_dummy.py
    Fixing fatemplate/static/docs/swagger-ui-bundle.js
    Fixing fatemplate/static/docs/redoc.standalone.js
    Fixing fatemplate/tests/test_echo.py
    Fixing fatemplate/static/docs/swagger-ui.css
    
    Add trailing commas......................................................Failed
    - hook id: add-trailing-comma
    - exit code: 1
    - files were modified by this hook
    
    Rewriting fatemplate/tests/test_redis.py
    Rewriting fatemplate/web/application.py
    Rewriting fatemplate/conftest.py
    Rewriting fatemplate/db/dao/dummy_dao.py
    Rewriting fatemplate/db/utils.py
    Rewriting fatemplate/tests/test_echo.py
    Rewriting fatemplate/tests/test_dummy.py
    
    Pretty format YAML.......................................................Failed
    - hook id: pretty-format-yaml
    - exit code: 1
    - files were modified by this hook
    
    File deploy/docker-compose.yml is not pretty-formatted
    Fixing file deploy/docker-compose.yml
    File .github/workflows/tests.yml is not pretty-formatted
    Fixing file .github/workflows/tests.yml
    File .pre-commit-config.yaml is not pretty-formatted
    Fixing file .pre-commit-config.yaml
    File deploy/kube/app.yml is not pretty-formatted
    Fixing file deploy/kube/app.yml
    File deploy/kube/db.yml is not pretty-formatted
    Fixing file deploy/kube/db.yml
    File deploy/kube/redis.yml is not pretty-formatted
    Fixing file deploy/kube/redis.yml
    
    Format with Black........................................................Failed
    - hook id: black
    - files were modified by this hook
    
    reformatted fatemplate/web/api/dummy/__init__.py
    reformatted fatemplate/web/lifetime.py
    
    All done! ✨ 🍰 ✨
    2 files reformatted, 2 files left unchanged.
    reformatted fatemplate/settings.py
    
    All done! ✨ 🍰 ✨
    1 file reformatted, 3 files left unchanged.
    reformatted fatemplate/db/migrations/env.py
    
    All done! ✨ 🍰 ✨
    1 file reformatted, 3 files left unchanged.
    reformatted fatemplate/web/api/monitoring/views.py
    
    All done! ✨ 🍰 ✨
    1 file reformatted, 3 files left unchanged.
    reformatted fatemplate/web/api/monitoring/__init__.py
    reformatted fatemplate/tests/test_fatemplate.py
    
    All done! ✨ 🍰 ✨
    2 files reformatted, 2 files left unchanged.
    reformatted fatemplate/web/api/docs/views.py
    reformatted fatemplate/tests/test_redis.py
    
    All done! ✨ 🍰 ✨
    2 files reformatted, 2 files left unchanged.
    reformatted fatemplate/web/application.py
    
    All done! ✨ 🍰 ✨
    1 file reformatted, 3 files left unchanged.
    reformatted fatemplate/conftest.py
    
    All done! ✨ 🍰 ✨
    1 file reformatted, 3 files left unchanged.
    reformatted fatemplate/web/api/docs/__init__.py
    reformatted fatemplate/web/api/echo/__init__.py
    reformatted fatemplate/db/utils.py
    
    All done! ✨ 🍰 ✨
    3 files reformatted, 1 file left unchanged.
    reformatted fatemplate/tests/test_echo.py
    reformatted fatemplate/tests/test_dummy.py
    
    All done! ✨ 🍰 ✨
    2 files reformatted, 2 files left unchanged.
    reformatted fatemplate/web/api/redis/__init__.py
    
    All done! ✨ 🍰 ✨
    1 file reformatted, 1 file left unchanged.
    
    autoflake................................................................Failed
    - hook id: autoflake
    - files were modified by this hook
    isort....................................................................Failed
    - hook id: isort
    - files were modified by this hook
    
    Fixing /home/mano/Desktop/test/fatemplate/fatemplate/web/lifetime.py
    Fixing /home/mano/Desktop/test/fatemplate/fatemplate/tests/test_fatemplate.py
    Fixing /home/mano/Desktop/test/fatemplate/fatemplate/tests/test_redis.py
    Fixing /home/mano/Desktop/test/fatemplate/fatemplate/web/api/docs/views.py
    Fixing /home/mano/Desktop/test/fatemplate/fatemplate/web/application.py
    Fixing /home/mano/Desktop/test/fatemplate/fatemplate/conftest.py
    Fixing /home/mano/Desktop/test/fatemplate/fatemplate/db/dao/dummy_dao.py
    Fixing /home/mano/Desktop/test/fatemplate/fatemplate/web/api/docs/__init__.py
    Fixing /home/mano/Desktop/test/fatemplate/fatemplate/db/utils.py
    Fixing /home/mano/Desktop/test/fatemplate/fatemplate/tests/test_echo.py
    Fixing /home/mano/Desktop/test/fatemplate/fatemplate/tests/test_dummy.py
    Fixing /home/mano/Desktop/test/fatemplate/fatemplate/web/api/router.py
    
    Check with Flake8........................................................Passed
    Validate types with MyPy.................................................Passed
    Remove usless noqa.......................................................Failed
    - hook id: yesqa
    - exit code: 1
    - files were modified by this hook
    
    Rewriting fatemplate/conftest.py
    
    Check python ast.........................................................Passed
    Trim Trailing Whitespace.................................................Passed
    Check Toml...............................................................Passed
    Fix End of Files.........................................................Passed
    Add trailing commas......................................................Passed
    Pretty format YAML.......................................................Passed
    Format with Black........................................................Passed
    autoflake................................................................Passed
    isort....................................................................Passed
    Check with Flake8........................................................Passed
    Validate types with MyPy.................................................Passed
    Remove usless noqa.......................................................Passed
    hint: The '.git/hooks/commit-msg' hook was ignored because it's not set as executable.
    hint: You can disable this warning with `git config advice.ignoredHook false`.
    Project successfully generated. You can read information about usage in README.md
    

    Building and then running with docker-compose the server is unreachable on localhost:8000 or 0.0.0.0:8000:

    Sending build context to Docker daemon  777.3kB
    Step 1/9 : FROM python:3.9.6-slim-buster
     ---> e18d3088c48c
    Step 2/9 : RUN pip install poetry==1.1.8
     ---> Using cache
     ---> 1c68c5835316
    Step 3/9 : RUN poetry config virtualenvs.create false
     ---> Using cache
     ---> 738969c2c64f
    Step 4/9 : COPY pyproject.toml poetry.lock /app/src/
     ---> Using cache
     ---> b6024b866e35
    Step 5/9 : WORKDIR /app/src
     ---> Using cache
     ---> fb117ba5c837
    Step 6/9 : RUN poetry install
     ---> Using cache
     ---> efe0dcf90249
    Step 7/9 : COPY . /app/src/
     ---> Using cache
     ---> 298c2bf3d8d7
    Step 8/9 : RUN poetry install
     ---> Using cache
     ---> 39f4a9b1f1ad
    Step 9/9 : CMD ["/usr/local/bin/python", "-m", "fatemplate"]
     ---> Using cache
     ---> e0af20beef2a
    Successfully built e0af20beef2a
    Successfully tagged fatemplate:latest
    [+] Running 6/6
     ⠿ Network fatemplate_default       Created                                                                                                                                           0.0s
     ⠿ Volume "fatemplate-db-data"      Created                                                                                                                                           0.0s
     ⠿ Container fatemplate-redis-1     Created                                                                                                                                           0.1s
     ⠿ Container fatemplate-db-1        Created                                                                                                                                           0.1s
     ⠿ Container fatemplate-migrator-1  Created                                                                                                                                           0.2s
     ⠿ Container fatemplate-api-1       Created                                                                                                                                           0.1s
    Attaching to fatemplate-api-1, fatemplate-db-1, fatemplate-migrator-1, fatemplate-redis-1
    fatemplate-db-1        | The files belonging to this database system will be owned by user "postgres".
    fatemplate-db-1        | This user must also own the server process.
    fatemplate-db-1        | 
    fatemplate-db-1        | The database cluster will be initialized with locale "en_US.utf8".
    fatemplate-db-1        | The default database encoding has accordingly been set to "UTF8".
    fatemplate-db-1        | The default text search configuration will be set to "english".
    fatemplate-db-1        | 
    fatemplate-db-1        | Data page checksums are disabled.
    fatemplate-db-1        | 
    fatemplate-db-1        | fixing permissions on existing directory /var/lib/postgresql/data ... ok
    fatemplate-db-1        | creating subdirectories ... ok
    fatemplate-db-1        | selecting dynamic shared memory implementation ... posix
    fatemplate-db-1        | selecting default max_connections ... 100
    fatemplate-db-1        | selecting default shared_buffers ... 128MB
    fatemplate-db-1        | selecting default time zone ... Etc/UTC
    fatemplate-db-1        | creating configuration files ... ok
    fatemplate-redis-1     | redis 16:46:16.54 
    fatemplate-redis-1     | redis 16:46:16.54 Welcome to the Bitnami redis container
    fatemplate-redis-1     | redis 16:46:16.54 Subscribe to project updates by watching https://github.com/bitnami/bitnami-docker-redis
    fatemplate-redis-1     | redis 16:46:16.54 Submit issues and feature requests at https://github.com/bitnami/bitnami-docker-redis/issues
    fatemplate-redis-1     | redis 16:46:16.54 
    fatemplate-redis-1     | redis 16:46:16.54 INFO  ==> ** Starting Redis setup **
    fatemplate-redis-1     | redis 16:46:16.55 WARN  ==> You set the environment variable ALLOW_EMPTY_PASSWORD=yes. For safety reasons, do not use this flag in a production environment.
    fatemplate-redis-1     | redis 16:46:16.55 INFO  ==> Initializing Redis
    fatemplate-redis-1     | redis 16:46:16.55 INFO  ==> Setting Redis config file
    fatemplate-redis-1     | redis 16:46:16.56 INFO  ==> ** Redis setup finished! **
    fatemplate-redis-1     | 
    fatemplate-redis-1     | redis 16:46:16.57 INFO  ==> ** Starting Redis **
    fatemplate-redis-1     | 1:C 16 Apr 2022 16:46:16.579 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
    fatemplate-redis-1     | 1:C 16 Apr 2022 16:46:16.579 # Redis version=6.2.5, bits=64, commit=00000000, modified=0, pid=1, just started
    fatemplate-redis-1     | 1:C 16 Apr 2022 16:46:16.579 # Configuration loaded
    fatemplate-redis-1     | 1:M 16 Apr 2022 16:46:16.579 * monotonic clock: POSIX clock_gettime
    fatemplate-redis-1     | 1:M 16 Apr 2022 16:46:16.580 * Running mode=standalone, port=6379.
    fatemplate-redis-1     | 1:M 16 Apr 2022 16:46:16.580 # Server initialized
    fatemplate-redis-1     | 1:M 16 Apr 2022 16:46:16.580 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
    fatemplate-redis-1     | 1:M 16 Apr 2022 16:46:16.580 * Ready to accept connections
    fatemplate-db-1        | running bootstrap script ... ok
    fatemplate-db-1        | performing post-bootstrap initialization ... ok
    fatemplate-db-1        | syncing data to disk ... ok
    fatemplate-db-1        | 
    fatemplate-db-1        | 
    fatemplate-db-1        | Success. You can now start the database server using:
    fatemplate-db-1        | 
    fatemplate-db-1        |     pg_ctl -D /var/lib/postgresql/data -l logfile start
    fatemplate-db-1        | 
    fatemplate-db-1        | initdb: warning: enabling "trust" authentication for local connections
    fatemplate-db-1        | You can change this by editing pg_hba.conf or using the option -A, or
    fatemplate-db-1        | --auth-local and --auth-host, the next time you run initdb.
    fatemplate-db-1        | waiting for server to start....2022-04-16 16:46:17.100 UTC [47] LOG:  starting PostgreSQL 13.4 (Debian 13.4-1.pgdg100+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit
    fatemplate-db-1        | 2022-04-16 16:46:17.102 UTC [47] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
    fatemplate-db-1        | 2022-04-16 16:46:17.112 UTC [48] LOG:  database system was shut down at 2022-04-16 16:46:16 UTC
    fatemplate-db-1        | 2022-04-16 16:46:17.118 UTC [47] LOG:  database system is ready to accept connections
    fatemplate-db-1        |  done
    fatemplate-db-1        | server started
    fatemplate-db-1        | CREATE DATABASE
    fatemplate-db-1        | 
    fatemplate-db-1        | 
    fatemplate-db-1        | /usr/local/bin/docker-entrypoint.sh: ignoring /docker-entrypoint-initdb.d/*
    fatemplate-db-1        | 
    fatemplate-db-1        | 2022-04-16 16:46:17.322 UTC [47] LOG:  received fast shutdown request
    fatemplate-db-1        | waiting for server to shut down....2022-04-16 16:46:17.324 UTC [47] LOG:  aborting any active transactions
    fatemplate-db-1        | 2022-04-16 16:46:17.325 UTC [47] LOG:  background worker "logical replication launcher" (PID 54) exited with exit code 1
    fatemplate-db-1        | 2022-04-16 16:46:17.325 UTC [49] LOG:  shutting down
    fatemplate-db-1        | 2022-04-16 16:46:17.339 UTC [47] LOG:  database system is shut down
    fatemplate-db-1        |  done
    fatemplate-db-1        | server stopped
    fatemplate-db-1        | 
    fatemplate-db-1        | PostgreSQL init process complete; ready for start up.
    fatemplate-db-1        | 
    fatemplate-db-1        | 2022-04-16 16:46:17.439 UTC [1] LOG:  starting PostgreSQL 13.4 (Debian 13.4-1.pgdg100+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit
    fatemplate-db-1        | 2022-04-16 16:46:17.439 UTC [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
    fatemplate-db-1        | 2022-04-16 16:46:17.439 UTC [1] LOG:  listening on IPv6 address "::", port 5432
    fatemplate-db-1        | 2022-04-16 16:46:17.442 UTC [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
    fatemplate-db-1        | 2022-04-16 16:46:17.449 UTC [75] LOG:  database system was shut down at 2022-04-16 16:46:17 UTC
    fatemplate-db-1        | 2022-04-16 16:46:17.454 UTC [1] LOG:  database system is ready to accept connections
    fatemplate-api-1       | INFO:     Will watch for changes in these directories: ['/app/src']
    fatemplate-api-1       | INFO:     Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
    fatemplate-api-1       | INFO:     Started reloader process [1] using statreload
    fatemplate-migrator-1  | INFO  [alembic.runtime.migration] Context impl PostgresqlImpl.
    fatemplate-migrator-1  | INFO  [alembic.runtime.migration] Will assume transactional DDL.
    fatemplate-migrator-1  | INFO  [alembic.runtime.migration] Running upgrade  -> 819cbf6e030b, Initial migration.
    fatemplate-migrator-1  | INFO  [alembic.runtime.migration] Running upgrade 819cbf6e030b -> 2b7380507a71, Created Dummy Model.
    fatemplate-api-1       | INFO:     Started server process [8]
    fatemplate-api-1       | INFO:     Waiting for application startup.
    fatemplate-migrator-1 exited with code 0
    fatemplate-api-1       | INFO:     Application startup complete.
    

    What default configuration are you testing with @s3rius that I could try, or more likely -- I am performing an error at some point?

    opened by WP-LKL 5
  • Logoru Attribute Error

    Logoru Attribute Error

    I've been trying to set up the project with Logoru enabled and if I try to run it I get the error

    Exception has occured: AttributeError X
    partially initialized module 'logging' has no attribute 'getLogger' (most likely due to a circular import)
    
       File "C:\Users\(myUser)\fastapitemplate\logoruTest\logging.poy", line 5, in <module> 
          from loguru import logger
       File "C:\Users\(myUser)\fastapitemplate\logoruTest\logging.poy", line 1, in <module> 
          import logging
    

    I'm a little bit at a loss condering this was just when starting the project right after generating it.

    It works without a problem when I exclude Logoru.

    opened by SahiniDev 4
  • Does this template support Windows?

    Does this template support Windows?

    I get this error when running on Windows:

     python3 -m fastapi_template
    Traceback (most recent call last):
      File "C:\pyenv\pyenv-win\versions\3.9.13\lib\site-packages\simple_term_menu.py", line 37, in <module>
        import termios
    ModuleNotFoundError: No module named 'termios'
    
    The above exception was the direct cause of the following exception:
    
    Traceback (most recent call last):
      File "C:\pyenv\pyenv-win\versions\3.9.13\lib\runpy.py", line 197, in _run_module_as_main
        return _run_code(code, main_globals, None,
      File "C:\pyenv\pyenv-win\versions\3.9.13\lib\runpy.py", line 87, in _run_code
        exec(code, run_globals)
      File "C:\pyenv\pyenv-win\versions\3.9.13\lib\site-packages\fastapi_template\__main__.py", line 8, in <module>
        from fastapi_template.cli import run_command
      File "C:\pyenv\pyenv-win\versions\3.9.13\lib\site-packages\fastapi_template\cli.py", line 1, in <module>
        from fastapi_template.input_model import (
      File "C:\pyenv\pyenv-win\versions\3.9.13\lib\site-packages\fastapi_template\input_model.py", line 7, in <module>
        from simple_term_menu import TerminalMenu
      File "C:\pyenv\pyenv-win\versions\3.9.13\lib\site-packages\simple_term_menu.py", line 39, in <module>
        raise NotImplementedError('"{}" is currently not supported.'.format(platform.system())) from e
    NotImplementedError: "Windows" is currently not supported.
    
    opened by Rashair 1
  • Adding an admin panel option when setting up the template

    Adding an admin panel option when setting up the template

    Hey 👋🏽

    What are opinions on adding an option to add an admin panel/dashboard which just displays the db tables set up in the template?

    The dashboard would be served separately

    Thinking about options such as:

    • https://github.com/fastapi-admin/fastapi-admin (seems like the more appropriate choice but never used this)
    • https://github.com/flask-admin/flask-admin (not a massive fan of this but it's lightweight I suppose)
    • Open to other suggestions

    I'd be happy to pick this up if it's a wanted feature

    opened by haffi96 3
  • Add function for supporting to add new integration into existed fastapi-template-generated project

    Add function for supporting to add new integration into existed fastapi-template-generated project

    Please add a function for supporting to add new integration into existed fastapi-template-generated project it maybe a very useful function (at least for me) thanks very much!

    opened by djun 2
  • Add JWT authentication

    Add JWT authentication

    Hello there !

    I imagine that a lot of API's resulting from this repository ends up having an authentication system. I was thinking it may be a good idea to put an option to generate some kind of boilerplate for JWT authentication since, I assume most of people used nowadays.

    What do you think about it ?

    opened by sorasful 9
  • Add Support for Prisma Python ORM

    Add Support for Prisma Python ORM

    Why

    Prisma Client Python is fully type safe and offers native support for usage with and without async.

    However, the arguably best feature that Prisma Client Python provides is autocompletion support. This makes writing database queries easier than ever!

    Links

    https://prisma-client-py.readthedocs.io/en/stable/ https://prisma-client-py.readthedocs.io/en/stable/getting_started/setup/

    opened by gurbaj5124871 2
Releases(4.0.1)
  • 4.0.1(Dec 14, 2022)

    What's Changed

    • Update redoc and swagger by @anton-petrov in https://github.com/s3rius/FastAPI-template/pull/137
    • Readme typo by @haluk in https://github.com/s3rius/FastAPI-template/pull/139

    New Contributors

    • @anton-petrov made their first contribution in https://github.com/s3rius/FastAPI-template/pull/137
    • @haluk made their first contribution in https://github.com/s3rius/FastAPI-template/pull/139

    Full Changelog: https://github.com/s3rius/FastAPI-template/compare/4.0.0...4.0.1

    Source code(tar.gz)
    Source code(zip)
  • 4.0.0(Dec 8, 2022)

    What's Changed

    • New CLI. by @s3rius in https://github.com/s3rius/FastAPI-template/pull/135

    This release contain breaking changes, such as updated UI and CLI.

    Full Changelog: https://github.com/s3rius/FastAPI-template/compare/3.3.10...4.0.0

    Source code(tar.gz)
    Source code(zip)
  • 3.3.10(Nov 4, 2022)

    What's Changed

    • Poetry version bumped to 1.2.2. Closes #131. by @s3rius in https://github.com/s3rius/FastAPI-template/pull/132

    Full Changelog: https://github.com/s3rius/FastAPI-template/compare/3.3.9...3.3.10

    Source code(tar.gz)
    Source code(zip)
  • 3.3.9(Oct 1, 2022)

    What's Changed

    • Update lifetime.py by @WP-LKL in https://github.com/s3rius/FastAPI-template/pull/114
    • install gcc when postgresql database is chose by @Bensebabillal in https://github.com/s3rius/FastAPI-template/pull/118
    • Fixed pytest action for MYSQL. Bumped MYSQL and postgresql versions. by @s3rius in https://github.com/s3rius/FastAPI-template/pull/122
    • Dependencies updated. by @s3rius in https://github.com/s3rius/FastAPI-template/pull/125

    New Contributors

    • @WP-LKL made their first contribution in https://github.com/s3rius/FastAPI-template/pull/114
    • @Bensebabillal made their first contribution in https://github.com/s3rius/FastAPI-template/pull/118

    Full Changelog: https://github.com/s3rius/FastAPI-template/compare/3.3.8...3.3.9

    Source code(tar.gz)
    Source code(zip)
  • 3.3.8(Jul 27, 2022)

    What's Changed

    • Added kafka integration. by @s3rius in https://github.com/s3rius/FastAPI-template/pull/105
    • Change psycopg dependencies by @chandr-andr in https://github.com/s3rius/FastAPI-template/pull/107
    • Removed redundant files. by @s3rius in https://github.com/s3rius/FastAPI-template/pull/109
    • Connections replaced with pools by @s3rius in https://github.com/s3rius/FastAPI-template/pull/110

    Full Changelog: https://github.com/s3rius/FastAPI-template/compare/3.3.7...3.3.8

    Source code(tar.gz)
    Source code(zip)
  • 3.3.7(Jul 10, 2022)

    What's Changed

    • add new exclude rules to flake8 config by @chandr-andr in https://github.com/s3rius/FastAPI-template/pull/100
    • Added optional traefik labeling. by @s3rius in https://github.com/s3rius/FastAPI-template/pull/102
    • Set poetry version to 1.1.13 by @chandr-andr in https://github.com/s3rius/FastAPI-template/pull/103

    New Contributors

    • @chandr-andr made their first contribution in https://github.com/s3rius/FastAPI-template/pull/100

    Full Changelog: https://github.com/s3rius/FastAPI-template/compare/3.3.6...3.3.7

    Source code(tar.gz)
    Source code(zip)
  • 3.3.6(Jul 8, 2022)

    What's Changed

    • Updated generated documentation. by @s3rius in https://github.com/s3rius/FastAPI-template/pull/94
    • Fix attribute error for "SQLAlchemyInstrumentor" [attr-defined] by @sorasful in https://github.com/s3rius/FastAPI-template/pull/95
    • Updated opentelemetry and fixed imports issue. by @s3rius in https://github.com/s3rius/FastAPI-template/pull/98
    • Added loguru logger. by @s3rius in https://github.com/s3rius/FastAPI-template/pull/99

    New Contributors

    • @sorasful made their first contribution in https://github.com/s3rius/FastAPI-template/pull/95

    Full Changelog: https://github.com/s3rius/FastAPI-template/compare/3.3.5...3.3.6

    Source code(tar.gz)
    Source code(zip)
  • 3.3.5(Jun 24, 2022)

    What's Changed

    • Redis and Straweberry updates. by @s3rius in https://github.com/s3rius/FastAPI-template/pull/88
    • Added prometheus integration. by @s3rius in https://github.com/s3rius/FastAPI-template/pull/90
    • Added sentry integration. by @s3rius in https://github.com/s3rius/FastAPI-template/pull/91
    • Added opentelemetry integration. by @s3rius in https://github.com/s3rius/FastAPI-template/pull/93

    Full Changelog: https://github.com/s3rius/FastAPI-template/compare/3.3.4...3.3.5

    Source code(tar.gz)
    Source code(zip)
  • 3.3.4(May 4, 2022)

    What's Changed

    • Fixed CI\CD. by @s3rius in https://github.com/s3rius/FastAPI-template/commit/689cb0e27b2dc4d89f98027c18e3161d956d936e

    Full Changelog: https://github.com/s3rius/FastAPI-template/compare/3.3.2...3.3.3

    Source code(tar.gz)
    Source code(zip)
  • 3.3.3(May 4, 2022)

    What's Changed

    • Fixed extra features files. by @s3rius in https://github.com/s3rius/FastAPI-template/pull/81
    • Added RabbitMQ service. by @s3rius in https://github.com/s3rius/FastAPI-template/pull/83

    Full Changelog: https://github.com/s3rius/FastAPI-template/compare/3.3.2...3.3.3

    Source code(tar.gz)
    Source code(zip)
  • 3.3.2(Apr 19, 2022)

    What's Changed

    • Added docker-compose config for local development. by @s3rius in https://github.com/s3rius/FastAPI-template/pull/75
    • Added pytest-xdist to speedup tests by @s3rius in https://github.com/s3rius/FastAPI-template/pull/76
    • Added graphQL api_type option. by @s3rius in https://github.com/s3rius/FastAPI-template/pull/79
    • Added piccolo ORM integration. by @s3rius in https://github.com/s3rius/FastAPI-template/pull/72

    Full Changelog: https://github.com/s3rius/FastAPI-template/compare/3.3.1...3.3.2

    Source code(tar.gz)
    Source code(zip)
  • 3.3.1(Apr 13, 2022)

    What's Changed

    • add continuous integration for pull requests by @AliSayyah in https://github.com/s3rius/FastAPI-template/pull/61
    • Updated all dependencies by @s3rius in https://github.com/s3rius/FastAPI-template/pull/68
    • Added psycopg support. by @s3rius in https://github.com/s3rius/FastAPI-template/pull/70

    New Contributors

    • @AliSayyah made their first contribution in https://github.com/s3rius/FastAPI-template/pull/61

    Full Changelog: https://github.com/s3rius/FastAPI-template/compare/3.3.0...3.3.1

    Source code(tar.gz)
    Source code(zip)
  • 3.3.0(Dec 28, 2021)

    What's Changed

    • Added quite arg for features by @codeleta in https://github.com/s3rius/FastAPI-template/pull/49
    • Fixed gitlab-ci generation (#54) by @sorasful in https://github.com/s3rius/FastAPI-template/pull/57

    New Contributors

    • @codeleta made their first contribution in https://github.com/s3rius/FastAPI-template/pull/49
    • @sorasful made his first contribution in https://github.com/s3rius/FastAPI-template/pull/55

    Full Changelog: https://github.com/s3rius/FastAPI-template/compare/3.2.2...3.3.0

    Source code(tar.gz)
    Source code(zip)
  • 3.2.2(Oct 15, 2021)

    What's Changed

    • Update README.md by @s3rius in https://github.com/s3rius/FastAPI-template/pull/45
    • Added Docker image build. by @s3rius in https://github.com/s3rius/FastAPI-template/pull/47

    Full Changelog: https://github.com/s3rius/FastAPI-template/compare/3.2.1...3.2.2

    Source code(tar.gz)
    Source code(zip)
  • 3.2.1(Oct 13, 2021)

    What's Changed

    • Updated CLI parameters and README. by @s3rius in https://github.com/s3rius/FastAPI-template/pull/42
    • Fixed database initialization. by @s3rius in https://github.com/s3rius/FastAPI-template/pull/43

    Full Changelog: https://github.com/s3rius/FastAPI-template/compare/3.2.0...3.2.1

    Source code(tar.gz)
    Source code(zip)
  • 3.2.0(Oct 10, 2021)

    What's Changed

    • feature/ormar by @s3rius in https://github.com/s3rius/FastAPI-template/pull/38

    Full Changelog: https://github.com/s3rius/FastAPI-template/compare/3.1.9...3.2.0

    Source code(tar.gz)
    Source code(zip)
  • 3.1.9(Oct 9, 2021)

    What's Changed

    • use kube_name on namespace by @gpkc in https://github.com/s3rius/FastAPI-template/pull/37

    Full Changelog: https://github.com/s3rius/FastAPI-template/compare/3.1.8...3.1.9

    Source code(tar.gz)
    Source code(zip)
  • 3.1.8(Oct 5, 2021)

    What's Changed

    • Fix readme typo by @gpkc in https://github.com/s3rius/FastAPI-template/pull/35
    • Adding project_name to isort src paths by @gpkc in https://github.com/s3rius/FastAPI-template/pull/34

    Full Changelog: https://github.com/s3rius/FastAPI-template/compare/3.1.7...3.1.8

    Source code(tar.gz)
    Source code(zip)
  • 3.1.5(Oct 3, 2021)

  • 1.2.0(Nov 15, 2020)

    At this point, this template uses cookiecutter and pre_commit internally without any sh or bat scripts. So now you can basically install it and run as a standalone application.

    Source code(tar.gz)
    Source code(zip)
Owner
Pavel Kirilin
Web developer, Linux fan, Tech enthusiast.
Pavel Kirilin
FastAPI Auth Starter Project

This is a template for FastAPI that comes with authentication preconfigured.

Oluwaseyifunmi Oyefeso 6 Nov 13, 2022
Fastapi-ml-template - Fastapi ml template with python

FastAPI ML Template Run Web API Local $ sh run.sh # poetry run uvicorn app.mai

Yuki Okuda 29 Nov 20, 2022
A web application using [FastAPI + streamlit + Docker] Neural Style Transfer (NST) refers to a class of software algorithms that manipulate digital images

Neural Style Transfer Web App - [FastAPI + streamlit + Docker] NST - application based on the Perceptual Losses for Real-Time Style Transfer and Super

Roman Spiridonov 3 Dec 05, 2022
Fast, simple API for Apple firmwares.

Loyal Fast, Simple API for fetching Apple Firmwares. The API server is closed due to some reasons. Wait for v2 releases. Features Fetching Signed IPSW

11 Oct 28, 2022
A FastAPI Plug-In to support authentication authorization using the Microsoft Authentication Library (MSAL)

FastAPI/MSAL - MSAL (Microsoft Authentication Library) plugin for FastAPI FastAPI - https://github.com/tiangolo/fastapi FastAPI is a modern, fast (hig

Dudi Levy 15 Jul 20, 2022
Simple notes app backend using Python's FastAPI framework.

my-notes-app Simple notes app backend using Python's FastAPI framework. Route "/": User login (GET): return 200, list of all of their notes; User sign

José Gabriel Mourão Bezerra 2 Sep 17, 2022
User authentication fastapi with python

user-authentication-fastapi Authentication API Development Setup environment You should create a virtual environment and activate it: virtualenv venv

Sabir Hussain 3 Mar 03, 2022
An alternative implement of Imjad API | Imjad API 的开源替代

HibiAPI An alternative implement of Imjad API. Imjad API 的开源替代. 前言 由于Imjad API这是什么?使用人数过多, 致使调用超出限制, 所以本人希望提供一个开源替代来供社区进行自由的部署和使用, 从而减轻一部分该API的使用压力 优势

Mix Technology 450 Dec 29, 2022
Code for my FastAPI tutorial

FastAPI tutorial Code for my video tutorial FastAPI tutorial What is FastAPI? FastAPI is a high-performant REST API framework for Python. It's built o

José Haro Peralta 9 Nov 15, 2022
A rate limiter for Starlette and FastAPI

SlowApi A rate limiting library for Starlette and FastAPI adapted from flask-limiter. Note: this is alpha quality code still, the API may change, and

Laurent Savaete 562 Jan 01, 2023
FastAPI pagination

FastAPI Pagination Installation # Basic version pip install fastapi-pagination # All available integrations pip install fastapi-pagination[all] Avail

Yurii Karabas 561 Jan 07, 2023
🚀 Cookiecutter Template for FastAPI + React Projects. Using PostgreSQL, SQLAlchemy, and Docker

FastAPI + React · A cookiecutter template for bootstrapping a FastAPI and React project using a modern stack. Features FastAPI (Python 3.8) JWT authen

Gabriel Abud 1.4k Jan 02, 2023
Qwerkey is a social media platform for connecting and learning more about mechanical keyboards built on React and Redux in the frontend and Flask in the backend on top of a PostgreSQL database.

Flask React Project This is the backend for the Flask React project. Getting started Clone this repository (only this branch) git clone https://github

Peter Mai 22 Dec 20, 2022
Sample project showing reliable data ingestion application using FastAPI and dramatiq

Create and deploy a reliable data ingestion service with FastAPI, SQLModel and Dramatiq This is the source code for the data ingestion service explain

François Voron 31 Nov 30, 2022
MQTT FastAPI Wrapper With Python

mqtt-fastapi-wrapper Quick start Create mosquitto.conf with the following content: ➜ /tmp cat mosquitto.conf persistence false allow_anonymous true

Vitalii Kulanov 3 May 09, 2022
The template for building scalable web APIs based on FastAPI, Tortoise ORM and other.

FastAPI and Tortoise ORM. Powerful but simple template for web APIs w/ FastAPI (as web framework) and Tortoise-ORM (for working via database without h

prostomarkeloff 95 Jan 08, 2023
cookiecutter template for web API with python

Python project template for Web API with cookiecutter What's this This provides the project template including minimum test/lint/typechecking package

Hitoshi Manabe 4 Jan 28, 2021
Lightning FastAPI

Lightning FastAPI Lightning FastAPI framework, provides boiler plates for FastAPI based on Django Framework Explaination / | │ manage.py │ README.

Rajesh Joshi 1 Oct 15, 2021
This project shows how to serve an ONNX-optimized image classification model as a web service with FastAPI, Docker, and Kubernetes.

Deploying ML models with FastAPI, Docker, and Kubernetes By: Sayak Paul and Chansung Park This project shows how to serve an ONNX-optimized image clas

Sayak Paul 104 Dec 23, 2022
Town / City geolocations with FastAPI & Mongo

geolocations-api United Kingdom Town / City geolocations with FastAPI & Mongo Build container To build a custom image or extend the api run the follow

Joe Gasewicz 3 Jan 26, 2022