在Django中编写接口以读取数据库中的数据,通常涉及到几个步骤:定义模型(Model)、创建视图(View)、配置URL。以下是一个简单的示例,展示如何从名为edu_patent
的数据库表中读取年份(year
)、专利申请授权数(zhuanli
)和发明专利申请授权数(faming
)的数据。
确认数据库表名以及对应的表头
步骤1: 定义模型
首先,假设你的edu_patent
表已经存在于数据库中,并且具有字段year
、zhuanli
和faming
。你需要在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测试请求,可以获取到我们的数据了。
完成以上步骤后,你就可以通过访问/api/edu_patent/
路径来获取edu_patent
表中的数据了。这个接口会返回数据库中所有记录的年份、专利申请授权数和发明专利申请授权数。
请注意,这个示例假设你已经熟悉Django的基本操作,包括如何设置项目和应用、如何连接数据库等。如果你的表结构或字段类型与示例中的不同,请相应地调整模型定义。此外,根据你的具体需求,可能还需要对视图和查询逻辑进行进一步的定制。