Lorsque j'ai essayé d'afficher des informations spécifiques en appuyant sur l'API de Django REST Framework (DRF) à partir de Nuxt.js, Not Found est apparu dans le journal du côté de Django.
Tout d'abord, je pensais que c'était un problème côté Django, donc je l'ai vérifié une fois sur la console DRF, mais les données existent et peuvent être visualisées. C'est une question simple, mais j'ai fait une erreur par inadvertance, je vais donc la laisser comme article au cas où.
Si Not Found se produit à partir des conditions préalables ci-dessus, vous avez commis une erreur lors de la définition du point d'entrée.
En premier lieu, c'est une prémisse, mais dans le routage de Django, si une URL autre que celle décrite dans urls.py est entrée, elle sera inconditionnellement introuvable si la gestion des erreurs 404 n'est pas effectuée. Par conséquent, il y a une forte possibilité que la description du point d'entrée appelé du côté Nuxt.js soit incorrecte.
Par exemple
async asyncData ({ $axios, params }) {
try {
const user = await $axios.$get('user')
return { user }
} catch (e) {
return { user: [] }
}
Si vous essayez d'obtenir des données sous la forme de, dans urls.py du projet côté Django
urls.py
urlspatterns = [
path('api/',include('sample.urls')),
]
Et écris
sample/urls.py
urlspatterns = [
path('user/',UserListView.as_view()),
]
Vous devez écrire dans un format comme celui-ci.
C'est parce que les données de ʻuser ne peuvent être obtenues que si elles proviennent d'une adresse telle que ʻapi / user
de la même manière que l'écriture de DRF.
Par conséquent, Nuxt.js doit également écrire d'une manière qui correspond au routage côté Django.
C'est facile, mais si vous séparez le front-end et le back-end et frappez le serveur API de l'extérieur, il est facile de l'oublier. Au moins cette fois, j'en étais un peu accro. Je suis heureux d'avoir une meilleure compréhension du routage dans ce domaine qu'auparavant.
J'espère que cet article aide quelqu'un.
Recommended Posts