Rumah  >  Soal Jawab  >  teks badan

python - url ujian Django sentiasa mengembalikan 404, tetapi menyemak imbas url dengan penyemak imbas adalah perkara biasa.

Kod ujian adalah seperti berikut:

from django.test import TestCase
# Create your tests here.

class SendviewsTestCase(TestCase):

    def test_get_data(self):
        rep = self.client.post('/data/datamsg/',{'data_name':'测试数据'})
        print (rep.content)
        # 测试http请求的返回码是否正确
        self.assertEqual(rep.status_code,200)
======================================================================
FAIL: test_get_data (dataforpro.tests.SendviewsTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/yangtz/developproject/backend/dataforpro/tests.py", line 20, in test_get_data
    self.assertEqual(rep.status_code,200)
AssertionError: 404 != 200

----------------------------------------------------------------------
Ran 1 test in 0.017s

FAILED (failures=1)
Destroying test database for alias 'default'...

Tetapi apabila menyemak imbas url dengan penyemak imbas, ia mengembalikan 200 seperti biasa.

淡淡烟草味淡淡烟草味2711 hari yang lalu617

membalas semua(3)saya akan balas

  • 怪我咯

    怪我咯2017-05-18 11:03:59

    Nampaknya ralat anda ialah 404, yang bermaksud bahawa url itu tidak ditemui semasa mengakses /data/datamsg/ Ia bergantung pada cara alamat url anda dikonfigurasikan Cuba /data/datamsg dan alih keluar / selepas itu adalah apa yang anda mahukan. Tambah http://localhost atau sesuatu seperti itu

    balas
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-18 11:03:59

    Anda berkata anda boleh menyemak imbas url dengan penyemak imbas
    Jika anda mengakses url melalui penyemak imbas, penyemak imbas akan menghantar permintaan GET
    tetapi anda menggunakan permintaan POST dalam ujian.

    Jadi walaupun tiada kaitan antara pelayar itu normal dan ujian lulus atau tidak

    balas
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-18 11:03:59

    404 muncul, sepatutnya seperti yang dikatakan 1L, URL (bahagian hos) perlu dilengkapkan. Kerana apabila meminta melalui penyemak imbas, URL dalam halaman bermula dengan /, dan penyemak imbas akan menambah hos secara automatik dan dalam kes ujian unit, anda mesti menulis URL lengkap itu sendiri.
    Apabila 302 muncul, anda perlu menyemak: URL mana 302 melompat ke? Di manakah anda menambah sebarang sekatan/syarat pengesahan? Sebagai contoh, jika "login_required" ditambah, jika sistem menyemak bahawa tiada log masuk, adakah ia secara automatik melompat ke halaman log masuk dengan 302?
    Ada satu lagi kemungkinan Ia sepatutnya 403. Anda memalsukan permintaan POST, dan Django mempunyai pengesahan CSRF secara lalai.

    balas
    0
  • Batalbalas