This project is a realworld backend based on fastapi+mongodb. It can be used as a sample backend or a sample fastapi project with mongodb.
First, set environment variables and create database. For example using docker
:
export MONGO_DB=rwdb MONGO_PORT=5432 MONGO_USER=MONGO MONGO_PASSWORD=MONGO docker run --name mongodb --rm -e MONGO_USER="$MONGO_USER" -e MONGO_PASSWORD="$MONGO_PASSWORD" -e MONGO_DB="$MONGO_DB" MONGO export MONGO_HOST=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' pgdb) mongo --host=$MONGO_HOST --port=$MONGO_PORT --username=$MONGO_USER $MONGO_DB
Then run the following commands to bootstrap your environment with poetry
:
git clone https://github.com/markqiu/fastapi-realworld-example-app cd fastapi-realworld-example-app poetry install poetry shell
Then create .env
file (or rename and modify .env.example
) in project root and set environment variables for application:
touch .env echo "PROJECT_NAME=FastAPI RealWorld Application Example" >> .env echo DATABASE_URL=mongo://$MONGO_USER:$MONGO_PASSWORD@$MONGO_HOST:$MONGO_PORT/$MONGO_DB >> .env echo SECRET_KEY=$(openssl rand -hex 32) >> .env echo ALLOWED_HOSTS='"127.0.0.1", "localhost"' >> .env
To run the web application in debug use:
uvicorn app.main:app --reload
You must have docker
and docker-compose
tools installed to work with material in this section.
First, create .env
file like in Quickstart section or modify .env.example
. MONGO_HOST
must be specified as db or modified in docker-compose.yml
also. Then just run:
docker-compose up -d
Application will be available on localhost
or 127.0.0.1
in your browser.
All routes are available on /docs
or /redoc
paths with Swagger or ReDoc.
Files related to application are in the app
directory. alembic
is directory with sql migrations.
Application parts are:
models - pydantic models that used in crud or handlers crud - CRUD for types from models (create new user/article/comment, check if user is followed by another, etc) db - db specific utils core - some general components (jwt, security, configuration) api - handlers for routes main.py - FastAPI application instance, CORS configuration and api router including
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。