ตัวอย่าง Django REST framework 2 ไม่ทำงาน

ฉันกำลังดำเนินการตัวอย่างแรกของ เฟรมเวิร์ก Django REST (เวอร์ชัน 2). ฉันได้ปฏิบัติตามคำแนะนำในการติดตั้งและตัวอย่างในจดหมายแล้ว แต่เมื่อฉันเปิด API ในเบราว์เซอร์ของฉันที่ http://127.0.0.1:8000/ ตามคำแนะนำ ฉันได้รับข้อผิดพลาดที่แสดงด้านล่าง ผมทำอะไรผิดหรือเปล่า? ตัวอย่างนี้ดูค่อนข้างพื้นฐาน

    Page not found (404)
    Request Method: GET
    Request URL:    http://127.0.0.1:8000/
    Using the URLconf defined in conf.urls, Django tried these URL patterns, in this order:

    ^admin/
    ^api-auth/
    The current URL, , didn't match any of these.

person Jim    schedule 03.04.2018    source แหล่งที่มา
comment
คุณใช้ Django เวอร์ชันใดอยู่? ฉันเพิ่งเผยแพร่คำตอบที่เป็นไปได้ (สมมติว่าคุณใช้ Django 2.x) หวังว่ามันจะช่วยได้   -  person Carlos Parra    schedule 04.04.2018
comment
ฉันใช้ Django 1.84 (ซึ่งเป็นสาเหตุที่ฉันใช้เฟรมเวิร์กเวอร์ชัน 2)   -  person Jim    schedule 04.04.2018


คำตอบ (2)


หากคุณใช้ Django 2.x เพื่อติดตามบทช่วยสอนนั้น ฉันเกรงว่าจะไม่ได้รับการอัปเดต ฉันทำตามที่บทช่วยสอนบอกไว้ทุกประการ และลองครั้งแรกก็ล้มเหลว

จากนั้นฉันเปลี่ยนไฟล์ urls.py ของฉันดังนี้:

ก่อน:

path('admin/', admin.site.urls),
    path(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')),
    path(r'^', include(router.urls)),

หลังจาก:

path('admin/', admin.site.urls),
    path('api-auth/', include('rest_framework.urls', namespace='rest_framework')),
    path('', include(router.urls)),

แล้วก็ทำ python manage.py runserver และมันทำงานได้อย่างถูกต้อง

person Carlos Parra    schedule 04.04.2018

คุณไม่ได้กำหนด URL หลัก ต้องกำหนด URL ดัชนีดังนี้:

urlpatterns = [
    path('index', views.index, name='index'),

    # the next path cath the empty path url www.example.com
    re_path('/?$', views.index)
]

ไม่มี url http://127.0.0.1:8000/ ใน urlpatterns ของคุณ นั่นคือสิ่งที่ django กำลังบอกคุณ

เพื่อทำงานในเฟรมเวิร์ก django rest คุณต้องปฏิบัติตามโฟลว์งานถัดไป:

  • สร้างแบบจำลองของคุณ
  • สร้างซีเรียลไลเซอร์สำหรับโมเดลของคุณ
  • สร้างมุมมอง ApiView, ViewSet หรือ Django ที่คุณใช้ซีเรียลไลเซอร์เพื่อตอบสนองต่อคำขอของผู้ใช้
  • ลงทะเบียนมุมมองของคุณใน urlpattern ของคุณ

หากคุณต้องการป้อน URL เข้าสู่ระบบส่วนที่เหลือให้ใช้ pathlocalhost:8000/api-auth

person Gytree    schedule 04.04.2018