django中如何使用Django REST Framework

1. 项目设置

python 复制代码
# 创建项目目录
mkdir drf_demo
cd drf_demo

# 创建虚拟环境并激活
python -m venv venv
source venv/bin/activate  # Linux/Mac
venv\Scripts\activate    # Windows

# 安装依赖
pip install django djangorestframework django-cors-headers

2. 创建 Django 项目和应用

python 复制代码
django-admin startproject core .
django-admin startapp api

3. 配置 settings.py

python 复制代码
# core/settings.py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # 添加的应用
    'rest_framework',
    'corsheaders',
    'api',  # 你的应用
]

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'corsheaders.middleware.CorsMiddleware',  # 添加 CORS 中间件
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

# 添加以下配置
REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': [
        'rest_framework.authentication.SessionAuthentication',
        'rest_framework.authentication.TokenAuthentication',
    ],
    'DEFAULT_PERMISSION_CLASSES': [
        'rest_framework.permissions.IsAuthenticatedOrReadOnly',
    ]
}

# CORS 配置(开发环境设置)
CORS_ALLOWED_ORIGINS = [
    "http://localhost:8080",  # Vue 开发服务器地址
]

CORS_ALLOW_CREDENTIALS = True

# 数据库配置(使用 SQLite 作为示例)
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

# 静态文件配置
STATIC_URL = '/static/'
相关推荐
码界筑梦坊12 分钟前
353-基于Python的大湾区气候数据可视化分析系统
开发语言·python·信息可视化·数据分析·django·vue·毕业设计
JOEH6020 分钟前
Java 后端开发中的内存泄漏问题:90% 开发者都会踩的 5 个坑
后端
_野猪佩奇_牛马版20 分钟前
多智能体协作 - 使用 LangGraph 子图实现
后端
JOEH6021 分钟前
为什么你的数据库连接总超时?99% 的 Java 程序员都踩过这 5 个坑
后端
后端不背锅22 分钟前
对外接口设计完全指南:安全、高性能、可演进
后端
如何原谅奋力过但无声34 分钟前
【chap11-动态规划(上 - 基础题目&背包问题)】用Python3刷《代码随想录》
数据结构·python·算法·动态规划
IT小崔38 分钟前
SqlSugar 使用教程
数据库·后端
Oneslide40 分钟前
Docker Compose 重启 RabbitMQ 数据丢失?
后端
架构师沉默41 分钟前
为什么国外程序员都写独立博客,而国内都在公众号?
java·后端·架构
开心就好20251 小时前
Win11 抓包工具怎么选?网页请求与设备流量抓取
后端·ios