【问题标题】:How to get html from web page in Django如何从Django中的网页获取html
【发布时间】:2020-08-31 00:43:27
【问题描述】:

我试图在 Django 中实现一些测试,我需要用字符串检查网页上的数据,但我无法从网页中检索数据。那么,如何从网页中获取数据(html)?

我的测试.py

from rest_framework.test import APITestCase

class TicketTestCase(APITestCase):

    def test_user_details_on_ticket_id(self):

        response = self.client.get(f"/api/ticket/1")
        print(response.content) # this returns empty data in bytes

        # I want to check this
        #self.assertEquals(response.data, "helloworld")

【问题讨论】:

  • 您为什么不打印出response.status_code 并确保它是您所期望的。
  • @RedCricket 因为 response.status_code 只打印状态代码,我希望实际数据进行验证
  • "data(html)" ... DRF 以 JSON 格式返回数据,这里的 HTML 是什么意思?
  • @ArakkalAbu 我不知道它以 JSON 格式返回数据。您能告诉我如何获取 JSON 格式的数据吗?
  • 我认为self.assertEquals(response.data "helloworld") 可以完成这项工作。你试过吗?

标签: python django django-testing django-tests


【解决方案1】:

你所做的是正确的。您可以使用 response.content 从网页中检索数据。问题是你在 url 的末尾缺少一个斜杠,所以 url 应该是

 response = self.client.get(f"/api/ticket/1/")

而不是

 response = self.client.get(f"/api/ticket/1")

【讨论】:

    猜你喜欢
    • 2012-10-13
    • 1970-01-01
    • 2011-06-15
    • 2015-01-02
    • 1970-01-01
    • 2015-02-10
    • 1970-01-01
    • 1970-01-01
    • 2017-01-16
    相关资源
    最近更新 更多