FastAPI with Django ORM 项目教程
fastapi-djangoFastAPI with Django ORM项目地址:https://gitcode.com/gh_mirrors/fa/fastapi-django
1. 项目的目录结构及介绍
fastapi-django/
├── adapters
│ └── __init__.py
├── manage.py
├── mysite
│ ├── asgi.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── polls
│ ├── admin.py
│ ├── apps.py
│ ├── migrations
│ │ ├── 0001_initial.py
│ │ └── __init__.py
│ ├── models
│ │ └── __init__.py
│ ├── routers
│ │ ├── __init__.py
│ │ ├── choices.py
│ │ └── questions.py
│ ├── schemas
│ │ └── __init__.py
│ └── tests.py
└── uvicorn_run.py
目录结构介绍
- adapters: 用于转换 Django ORM 到 Pydantic 模型的适配器。
- manage.py: Django 项目的管理文件。
- mysite: Django 项目的主目录,包含配置文件和启动文件。
- asgi.py: ASGI 配置文件,用于启动 ASGI 服务器。
- settings.py: Django 项目的配置文件。
- urls.py: URL 路由配置文件。
- wsgi.py: WSGI 配置文件,用于启动 WSGI 服务器。
- polls: 示例应用目录。
- admin.py: Django 管理后台配置文件。
- apps.py: 应用配置文件。
- migrations: 数据库迁移文件目录。
- models: Django 模型文件目录。
- routers: FastAPI 路由文件目录。
- schemas: Pydantic 模型文件目录。
- tests.py: 测试文件。
- uvicorn_run.py: Uvicorn 启动文件。
2. 项目的启动文件介绍
uvicorn_run.py
import uvicorn
if __name__ == "__main__":
uvicorn.run("mysite.asgi:application", host="0.0.0.0", port=8000, reload=True)
该文件用于启动 FastAPI 应用,通过 uvicorn
运行 mysite.asgi:application
。
manage.py
#!/usr/bin/env python
"""Django's command-line utility for administrative tasks."""
import os
import sys
def main():
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings')
try:
from django.core.management import execute_from_command_line
except ImportError as exc:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
) from exc
execute_from_command_line(sys.argv)
if __name__ == '__main__':
main()
该文件是 Django 项目的管理文件,用于执行各种管理命令,如 migrate
、runserver
等。
3. 项目的配置文件介绍
mysite/settings.py
import os
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'your-secret-key'
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
ALLOWED_HOSTS = []
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'polls',
]
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django
fastapi-djangoFastAPI with Django ORM项目地址:https://gitcode.com/gh_mirrors/fa/fastapi-django