当前位置: 首页 > wzjs >正文

网上课程网站网站建设推广语言

网上课程网站,网站建设推广语言,公司网站域名注册费用,网站流量一直下降以下是使用 Django 和 Django REST Framework (DRF) 开发 API 接口的核心步骤,涵盖模型、迁移、序列化、视图、路由等关键环节: 前言 什么是DRF? Django REST Framework(DRF) 是基于Django的一个强大且灵活的工具包&…

以下是使用 Django 和 Django REST Framework (DRF) 开发 API 接口的核心步骤,涵盖模型、迁移、序列化、视图、路由等关键环节:

前言

什么是DRF?
Django REST Framework(DRF) 是基于Django的一个强大且灵活的工具包,用于快速构建Web API。它提供了序列化、认证、权限、分页等开箱即用的功能,极大简化了API开发流程。

一. 创建 Django 项目和应用

python3.11.1版本

# 创建项目
pip install django==5.2
django-admin startproject myproject
cd myproject# 创建应用
python manage.py startapp myapi

二. 安装依赖

创建虚拟环境

python -m venv venv

在 requirements.txt 中添加:

django==5.2
djangorestframework==3.16.0
mysqlclient==2.2.7

安装依赖:


pip install -r requirements.txt

三. 配置 DRF 和数据库

在 settings.py 中启用 DRF 和数据库:


INSTALLED_APPS = [...'rest_framework','myapi',
]# 数据库配置(默认 SQLite)
DATABASES = {'default': {'ENGINE': 'django.db.backends.sqlite3','NAME': BASE_DIR / 'db.sqlite3',},#'default': {#    'ENGINE': 'django.db.backends.mysql',#    'NAME': 'mydb',         # 数据库名称#    'USER': 'myuser',        # MySQL用户名#    'PASSWORD': 'mypassword',# MySQL密码#    'HOST': 'localhost',     # 数据库主机地址(默认为localhost)#    'PORT': '3306',          # 数据库端口(默认3306)#    'OPTIONS': {#        'charset': 'utf8mb4',  # 确保字符集正确#        'init_command': "SET sql_mode='STRICT_TRANS_TABLES'", # 启用严格模式#       # 如果使用MySQL 8.0+且遇到认证问题,可能需要以下选项#       # 'auth_plugin': 'mysql_native_password',#   },#}
}

解决MySQL 8.0+认证问题(如需要)

如果遇到caching_sha2_password错误,修改MySQL用户认证方式:

ALTER USER 'myuser'@'localhost' IDENTIFIED WITH mysql_native_password BY 'mypassword';
FLUSH PRIVILEGES;

四. 定义数据模型

在 myapi/models.py 中创建模型:


from django.db import modelsclass Book(models.Model):title = models.CharField(max_length=200)author = models.CharField(max_length=100)published_date = models.DateField()def __str__(self):return self.title

五. 创建并应用数据库迁移


# 生成迁移文件
python manage.py makemigrations# 应用迁移
python manage.py migrate

六. 创建序列化器

在 myapi/serializers.py 中定义序列化器:


from rest_framework import serializers
from .models import Bookclass BookSerializer(serializers.ModelSerializer):class Meta:model = Bookfields = '__all__'  # 序列化所有字段

七. 编写视图

在 myapi/views.py 中使用 DRF 的视图类:


from rest_framework import generics
from .models import Book
from .serializers import BookSerializer# 列表和创建操作
class BookListCreateView(generics.ListCreateAPIView):queryset = Book.objects.all()serializer_class = BookSerializer# 单个对象的获取、更新、删除
class BookDetailView(generics.RetrieveUpdateDestroyAPIView):queryset = Book.objects.all()serializer_class = BookSerializer

八. 配置 URL 路由

在 myapi/urls.py 中定义路由:


from django.urls import path
from .views import BookListCreateView, BookDetailViewurlpatterns = [path('books/', BookListCreateView.as_view(), name='book-list'),path('books/<int:pk>/', BookDetailView.as_view(), name='book-detail'),
]

在主项目的 urls.py 中包含应用路由:


from django.urls import include, pathurlpatterns = [path('admin/', admin.site.urls),path('api/', include('myapi.urls')),
]

九. 测试 API

# 启动开发服务器
python manage.py runserver

访问以下端点测试:

http://localhost:8000/api/books/:获取所有书籍或创建新书籍(POST)。http://localhost:8000/api/books/1/:操作单个书籍(GET/PUT/DELETE)

十. 使用视图集和路由器(简化代码)

若需进一步简化,可使用 ViewSet 和 Router:


# views.py
from rest_framework import viewsets
from .models import Book
from .serializers import BookSerializerclass BookViewSet(viewsets.ModelViewSet):queryset = Book.objects.all()serializer_class = BookSerializer# urls.py
from rest_framework.routers import DefaultRouter
from .views import BookViewSetrouter = DefaultRouter()
router.register(r'books', BookViewSet)urlpatterns = [path('', include(router.urls)),
]

关键步骤总结

1.模型定义:通过 Django 模型定义数据结构。2.迁移操作:使用 makemigrations 和 migrate 同步数据库。3.序列化器:DRF 的 ModelSerializer 将模型转换为 JSON。4.视图类:通用视图(ListCreateAPIView, RetrieveUpdateDestroyAPIView):快速实现 CRUD。视图集(ModelViewSet):结合路由器自动生成 URL。5.路由配置:手动定义或使用 DefaultRouter 自动生成。6.权限控制:按需添加认证和权限类。

常用命令速查

操作命令
创建迁移文件python manage.py makemigrations
应用迁移python manage.py migrate
创建超级用户python manage.py createsuperuser
启动开发服务器python manage.py runserver

通过以上步骤,你可以快速构建一个符合 RESTful 规范的 API,并灵活扩展功能(如分页、过滤、文档生成)


文章转载自:

http://yr2PNqNL.fkfLc.cn
http://3tgIxgvh.fkfLc.cn
http://nWFJcPFY.fkfLc.cn
http://glDWQVYS.fkfLc.cn
http://C52gqX2n.fkfLc.cn
http://qCxjfNeR.fkfLc.cn
http://dD8G84bI.fkfLc.cn
http://0FZeHbkz.fkfLc.cn
http://OSyUwYLv.fkfLc.cn
http://2BQ4jX0C.fkfLc.cn
http://wD3wRkZb.fkfLc.cn
http://Ys9IfsF0.fkfLc.cn
http://p3SbbZjS.fkfLc.cn
http://xj9mjzbE.fkfLc.cn
http://N3xrL3o8.fkfLc.cn
http://V20Kyxbz.fkfLc.cn
http://G5skjtw4.fkfLc.cn
http://pNI15hRZ.fkfLc.cn
http://Jplvbwgm.fkfLc.cn
http://1ns26r5i.fkfLc.cn
http://JcsnJlX3.fkfLc.cn
http://biFwg9Fc.fkfLc.cn
http://cjn022iQ.fkfLc.cn
http://MTJ5uqIJ.fkfLc.cn
http://Wghs0P8j.fkfLc.cn
http://x85TvNfv.fkfLc.cn
http://iYDYZhS7.fkfLc.cn
http://tGTfU7BJ.fkfLc.cn
http://BgIZkIYP.fkfLc.cn
http://Kw22JRql.fkfLc.cn
http://www.dtcms.com/wzjs/754720.html

相关文章:

  • 网站建设需放在哪个科目邢台企业做网站
  • 网站建设制作文献wordpress详细介绍
  • 织梦网站后台空白什么是静态网站
  • 旅游网站建设分析 需求wordpress 网址 建站
  • 《网站设计与建设》电子书用vue做的网站模板
  • 虚拟主机 2个网站小广告清理
  • 网站app软件下载安装西安博网站建设
  • 网站建设思路方法淘宝网站建设杭州
  • 北京网站建设的服务深圳建站公司价格
  • 展示型企业网站设计方案做lgoo的网站一般有哪些
  • 免费建站的网站能做影视网站吗上海市建设工程信息报送网站
  • 成都教育网站建设公司价格ppt网站建设
  • 电商企业网站建设清河做网站哪里好
  • wordpress 文章属性湖南关键词优化推荐
  • 安徽住房与城乡建设门户网站做一个网站需要多少费用
  • 集团门户网站建设方案美篇app制作教程
  • php网站开发wordpress多域名配置
  • 英语外贸网站建设国外的技术社区
  • 企业建站公司案例如何建设简易网站
  • 网站制作公司杭州做游戏制作 网站
  • 临沂网站建设兼职wordpress下载及安装
  • 手机可以设计网站吗局域网搭建wordpress慢
  • 做集团网站的dede后台做两个网站
  • 携程企业网站建设的思路下列属于网页制作平台的是
  • 深圳外贸建站模版软件商店软件下载
  • 网站底部放什么蒙狼科技建设网站好不好
  • wordpress做个人教学网站聚成网站建设
  • 欧美做暖网站无线网络管理系统
  • 一般网站建设费用捡个校花做老婆是哪个网站的
  • 清洁公司网站建设做线上网站的风险分析