почему я мог создать файл json -типа в проекте django? - PullRequest
0 голосов
/ 13 января 2020

Я только начинаю учить django и Vue. js и теперь сталкиваюсь с этой проблемой. Я построил небольшой python + django + Vue. js проект в соответствии с образцом. Теперь это хорошо работает. основные коды следующие:

тест django. vue

<template>
    <div id="mineapp">
    {{msg}}
        <form @submit.prevent ="submitNote">
            <label>Title</label>
            <input type="text" v-model="formData.title"/>
            <label>Content</label>
            <textarea v-model="formData.content"></textarea>
            <br/>
            <button type="submit">Submit</button>
        </form>
    </div>
</template>
<script>
  import api from './api/index.js'
....
     methods: {
        submitNote(){
          api.fetchNotes('post',null, this.formData).then(res=>{
            this.msg = 'Saved'
          }).catch((e)=>{
          this.msg = e.response
          })
      },

индекс. js

import axios from 'axios'

export default{
    fetchNotes(method, params, data){
    if(method ==='post'){
      return ajax('api/notes/', method,{data})
    } else{
      return ajax('api/notes/', 'get', {})
    }
...
function ajax(url,method,options){
    if(options !== undefined){
        var{params=[], data={}} = options
    } else{
        params = data = {}
    }
    return new Promise((resolve, reject)=>{
    axios({
    url,
    method,
    params,
    data
    }).then(res => {
    resolve(res)
    }, res=>{
    reject(res)
    })
})

models.py

class Note(models.Model):
    title = models.CharField(max_length=225, unique=True)
    content = models.TextField()
    created = models.DateTimeField(auto_created=True, auto_now_add=True)
    def _str_(self):
        return self.title

views.py

class NoteViewSet(viewsets.ModelViewSet):
    #check permissions
    permission_classes={
        IsAuthenticated,
    }
    queryset = Note.objects.all()
    serializer_class = NoteSerializer
    lookup_field ="id"

Я успешно сохранил данные интерфейса в серверную часть (django) и проверенную панель администратора.

Следующая проблема заключается в том, что:

при отправке ajax запроса "/ api / notes "могу ли я создать файл json на локальном диске проекта django? Я хочу создать файл json -типа, созданный на стороне django, и сохранить мою локальную директорию проекта. Но я не знаю, как это сделать? Можно ли с помощью одного запроса выполнить две функции (сохранить данные в модели django и создать файл типа json в проекте django)?

1 Ответ

0 голосов
/ 13 января 2020

Для генерации JSON файлов вы можете использовать модуль json, просто создайте dictionary с данными, откройте file для writing и просто dump данные в нем, это будет работать :

import json


dictionary = {
    'key': 'value'
}


file_path = 'a/file/path.json'
with open(file_path, 'w') as file:
    json.dump(dictionary, file)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...