数据库中的Django Rest API

gjmwrych  于 2022-12-01  发布在  Go
关注(0)|答案(1)|浏览(157)

我有两个API从我现有的项目。其中一个提供最新的博客文章和另一个提供排序的细节。第二个API(排序)给博客文章ID和一个排序号码,这应该是在1st,2nd,3rd... n的位置。如果我过滤在第一个API与给定的ID,我可以得到博客文章的细节。
我如何从数据库中创建Django REST API?或者从这两个API中创建一个API?有没有教程或者参考资料可以帮助我?
首次API响应:

{
  "count": 74,
  "next": "https://cms.example.com/api/v2/stories/?page=2",
  "previous": null,
  "results": [
    {
      "id": 111,
      "meta": {
        "type": "blog.CreateStory",
        "seo_title": "",
        "search_description": "",
        "first_published_at": "2022-10-09T07:29:17.029746Z"
      },
      "title": "A Test Blog Post"
},
{
      "id": 105,
      "meta": {
        "type": "blog.CreateStory",
        "seo_title": "",
        "search_description": "",
        "first_published_at": "2022-10-08T04:45:32.165072Z"
      },
      "title": "Blog Story 2"
},

第二次API响应

[
  {
    "featured_item": 1,
    "sort_order": 0,
    "featured_page": 105
  },
  {
    "featured_item": 1,
    "sort_order": 1,
    "featured_page": 90
  },

在这里,我想创建另一个API,它将提供有关排序的更多详细信息,例如,它将像这样排序https://cms.example.com/api/v2/stories/105并捕获Title, Image & Excerpt,如果排序详细信息中没有数据,它将默认显示第一个API的响应。

2ic8powd

2ic8powd1#

搜索后,我发现你可以从数据库中创建API。在设置中,你需要设置数据库凭据,然后需要在你的models.py和类的元中创建一个类,你需要将元名称设置为db_table,然后创建serializers.pyviews.py,就像你创建REST API一样。

class SortAPI(models.Model):
    featured_item_id = models.IntegerField()
    sort_order = models.IntegerField()
    title=models.TextField()
    first_published_at=models.DateTimeField()
    alternative_title= models.TextField()
    excerpt=models.TextField()
    sub_heading=models.TextField()
    news_slug=models.TextField()
    img_title=models.TextField()
    img_url=models.TextField()
    img_width=models.IntegerField()
    img_height=models.IntegerField()

    class Meta:
        db_table = 'view_featured'

相关问题