python3 Django生成接口请求

python yekong

在Django中编写接口以读取数据库中的数据,通常涉及到几个步骤:定义模型(Model)、创建视图(View)、配置URL。以下是一个简单的示例,展示如何从名为edu_patent的数据库表中读取年份(year)、专利申请授权数(zhuanli)和发明专利申请授权数(faming)的数据。

确认数据库表名以及对应的表头

确认数据库表名以及对应的表头

步骤1: 定义模型

首先,假设你的edu_patent表已经存在于数据库中,并且具有字段yearzhuanlifaming。你需要在Django的models.py文件中定义一个模型来映射这个表:

from django.db import models

class EduPatent(models.Model):
    year = models.IntegerField(db_column='年份')  # 数据库中的实际列名为'年份'
    zhuanli = models.IntegerField(db_column='高等学校专利申请授权数(件)')  # 数据库中的实际列名
    faming = models.IntegerField(db_column='高等学校发明专利申请授权数(件)')  # 数据库中的实际列名

    class Meta:
        managed = False
        db_table = 'edu_patent'

步骤2: 创建视图

接下来,在views.py文件中创建一个视图来处理数据的读取。这里使用Django的QuerySet API来查询数据库,并将结果序列化为JSON格式返回:

from django.http import JsonResponse
from .models import EduPatent

def get_edu_patent_data(request):
    # 假设你想获取所有记录
    patents = EduPatent.objects.all().values('year', 'zhuanli', 'faming')
    patents_list = list(patents)  # 将QuerySet转换为列表
    return JsonResponse(patents_list, safe=False)

步骤3: 配置URL

最后,在urls.py文件中为你的视图配置URL路径:

from django.urls import path
from . import views

urlpatterns = [
    path('api/edu_patent/', views.get_edu_patent_data, name='get_edu_patent_data'),
]

postman测试

我们使用postman测试请求,可以获取到我们的数据了。

postman测试
完成以上步骤后,你就可以通过访问/api/edu_patent/路径来获取edu_patent表中的数据了。这个接口会返回数据库中所有记录的年份、专利申请授权数和发明专利申请授权数。

请注意,这个示例假设你已经熟悉Django的基本操作,包括如何设置项目和应用、如何连接数据库等。如果你的表结构或字段类型与示例中的不同,请相应地调整模型定义。此外,根据你的具体需求,可能还需要对视图和查询逻辑进行进一步的定制。

喜欢