[PYTHON] Envoyer des données à l'API DRF avec Vue.js

Je souhaite envoyer des données par POST à l'API créée dans l'article suivant et l'enregistrer dans la base de données. Je veux accéder à l'API créée par DRF à partir de Vue.js de Jsfiddle

environnement

book/models.py


from django.db import models
import uuid
from django.utils import timezone

# Create your models here.
class Book(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    title = models.CharField(verbose_name='Titre', max_length=50)
    price = models.IntegerField(verbose_name='prix')
    created_at = models.DateTimeField(default=timezone.now)

    def __str__(self):
        return self.title

De plus, Vue.js est répertorié sur jsfiddle.

Données que vous souhaitez enregistrer

Je souhaite enregistrer le champ de titre et le champ de prix en tant que nouvelles données dans la table Livre. id et created_at sont ajoutés automatiquement, vous pouvez donc continuer.

Ecrire Vue.js

html


<div id="app">
  <div>
    <h1>GET</h1>
    <p>Titre: {{ results[1].title }}</p><hr>
  </div>
  
  <div>
    <h1>POST</h1>
    <h2>Titre: {{ title }}</h2>
    <h2>¥{{ price }}</h2>
    <input v-model='title'>
    <input v-model='price'>
    <button v-on:click='postBook'>Envoyer</button>
  </div>
</div>

<script src="https://unpkg.com/axios/dist/axios.min.js"></script>

javascript


new Vue({
  el: '#app',
  data: {
    results: [],
    title: '',
    price: '',
  },
  methods:{
  	postBook: function(){
    	console.log('Hello')
      axios.post('http://127.0.0.1:8000/apiv1/book/', 
      { title : this.title , price : this.price })
    }
  },
  mounted() {
    axios.get('http://127.0.0.1:8000/apiv1/book/')
    .then(response => {this.results = response.data})
 },
})

Utilisez la directive v-model dans la balise ʻinput pour définir le titreet leprix`. Définissez un objet de données avec le même nom dans l'instance Vue et laissez le contenu vide.

Enregistrez postBook dans les méthodes. Utilisez la directive v-on pour la balise bouton pour l'enregistrer.

Dans la méthode postBook, ʻaxios.post ('endpoint of list screen', {field name: data, field name: data})` est défini, et le champ et les données correspondant sont POSTés.

Jusque là: スクリーンショット 2020-03-28 15.26.17.png

Envoyer

スクリーンショット 2020-03-28 15.46.41.png

Lorsque vous appuyez sur envoyer ...

スクリーンショット 2020-03-28 15.48.11.png

Il a été ajouté.

Ajouter une virgule au nombre

Si vous souhaitez ajouter une virgule lors de l'affichage du prix, créez un filtre dans l'instance Vue et appliquez le filtre à la moustache du modèle que vous souhaitez appliquer avec pipe = |.

instance de vue


  filters: {
    comma(value) {
      if (!value) return ''
      value = value.toString()
      return value.replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,')
 }
 }

html


<h2>¥{{ price | comma }}</h2>
スクリーンショット 2020-03-28 16.00.46.png

Recommended Posts

Envoyer des données à l'API DRF avec Vue.js
Comment gérer les données déséquilibrées
Comment augmenter les données avec PyTorch
[Python] Créer une API pour envoyer Gmail
Envoyer les images prises avec ESP32-WROOM-32 vers AWS (API Gateway → Lambda → S3)
Comment envoyer une requête à l'API DMM (FANZA) avec python
Obtenez des données alimentaires avec l'API Amazon (Python)
Convertir des données Excel en JSON avec python
Convertissez des données FX 1 minute en données 5 minutes avec Python
Essayez de convertir en données ordonnées avec les pandas
Comment lire les données de problème avec Paiza
Comment créer des exemples de données CSV avec hypothèse
Envoyer un message à LINE avec Python (LINE Notify)
Comment envoyer un message à LINE avec curl
Essayez d'agréger les données de musique doujin avec des pandas
Convertissez les données avec la forme (nombre de données, 1) en (nombre de données,) avec numpy.
J'ai créé un outil pour corriger les données GPS avec l'API Map Matching de Mapbox (Mapbox Map Matching API)
[DRF + Vue.js] Erreur lors de l'acquisition de l'API (erreur générale)
J'ai essayé de sauvegarder les données avec discorde
Je veux frapper 100 sciences des données avec Colaboratory
Obtenez des données sur le cours de l'action avec l'API Quandl [Python]
Enregistrez les données pour flasher avec la carte Nucleo STM32
Comment récupérer des données de courses de chevaux avec Beautiful Soup
[Introduction à minimiser] Analyse des données avec le modèle SEIR ♬
Comment obtenir des données d'article à l'aide de l'API Qiita
Exemple de notification Slack avec python lambda
Écrire des données CSV sur AWS-S3 avec AWS-Lambda + Python
Envoyer msgpack avec ajax à l'environnement flask (werkzeug)
Pour envoyer automatiquement des e-mails avec des pièces jointes à l'aide de l'API Gmail en Python
[Python] Mention à plusieurs personnes avec l'API de Slack
Comment utiliser xgboost: classification multi-classes avec des données d'iris
Comment récupérer des données d'image de Flickr avec Python
Comment convertir des données détenues horizontalement en données détenues verticalement avec des pandas
Envoyer les données du journal du serveur vers Splunk Cloud
Note de lecture: Introduction à l'analyse de données avec Python
Comment obtenir plus de 1000 données avec SQLAlchemy + MySQLdb
Envoyer des données de Python au traitement via une communication socket
Comment extraire des données qui ne manquent pas de valeur nan avec des pandas
J'ai essayé de découvrir notre obscurité avec l'API Chatwork
termux × AWS Envoyez des informations de localisation de smartphone à AWS avec l'IoT
Obtenez des commentaires et des abonnés avec l'API de données YouTube
Comment analyser avec Google Colaboratory à l'aide de l'API Kaggle
Transférer vers un Drive partagé avec l'API Google Drive V3
Entrez les données Zaim dans Amazon Elasticsearch Service avec Logstash
Comment faire fonctionner l'API Discord avec Python (enregistrement de bot)
Transférer les données vers une autre page (onglet) avec streamlit
Comment extraire des données qui ne manquent pas de valeur nan avec des pandas
Analyse de données avec python 2
Convertir 202003 en 2020-03 avec les pandas
Lecture de données avec TensorFlow
Envoyer des e-mails avec Django
Visualisation des données avec les pandas
Extruder avec l'API Fusion360
Manipulation des données avec les Pandas!
Mélangez les données avec les pandas