我正在建立一个拥有django后端的网站.我希望能够从django可以访问的数据库中提供医疗账单数据.但是,我们收到的所有数据都在excel电子表格中.所以我一直在寻找一种从电子表格中获取数据的方法,然后将其导入到django模型中.我知道有一些不同的django软件包可以做到这一点,但我很难理解如何使用这些软件包.最重要的是,我正在为这个项目使用python 3.我曾经在wincel中使用win32com作为自动化的东西.我可以编写一个可以从电子表格中获取数据的函数.虽然我想弄清楚的是如何将数据写入django模型?任何建议表示赞赏.
注意settings/dev.py代替一个settings.py文件和以下Django(1.4.3)项目script.py中的my_appin:
.
??? my_project
? ??? my_app
? ? ??? __init__.py
? ? ??? models.py
? ? ??? tests.py
? ? ??? views.py
? ? ??? script.py
? ??? __init__.py
? ??? settings
? ? ??? dev.py
? ? ??? __init__.py
? ? ??? prod.py
? ??? urls.py
? ??? wsgi.py
??? manage.py
??? requirements.txt
Run Code Online (Sandbox Code Playgroud)
当我只有一个settings.py文件代替settings文件夹时,我能够运行以下脚本而没有任何错误:
script.py:
###################################################################
# set up for making it possible to …Run Code Online (Sandbox Code Playgroud) 我对 Django 很陌生,实际上对编码也很陌生。我知道这是一个愚蠢的问题,但我不知道如何做到这一点。
我想从本地 csv 文件中导入一些数据并存储到数据库(我的是 mysql)而不创建上传表单(几乎我从谷歌找到的教程)。
我对 MVC 模型很困惑,例如处理 csv 的部分应该在哪里?视图或模型?而且我还必须创建一个函数来从 csv 中删除不需要的字段。我应该把那个代码放在哪里?
这是我的模型
from __future__ import unicode_literals
import csv, io
from django.conf import settings
from django.db import models
#from django_countries.fields import CountryField
class ASN(models.Model):
num = models.IntegerField(primary_key=True)
owner = models.CharField(max_length=50, null=True)
# Using countryfield to convert from country code to name
countryCode = models.CharField(max_length=5)
name = models.CharField(max_length=100, null=True)
#countryName = CountryField()
def __str__(self):
return str(self.owner) + " " + str(self.num) + " " + str(self.countryCode)
class Host(models.Model):
name …Run Code Online (Sandbox Code Playgroud) 我正在开发一个学校管理项目,想要上传 CSV 文件并通过覆盖当前数据或在数据库中更新它来保存它。但它没有被添加到数据库中。另外,我喜欢添加更多字段,因此如果可能的话使用动态(即通过循环),这样我以后就不必更改它。
models.py
class Student(models.Model):
registration_number = models.CharField(max_length=200, unique=True)
firstname = models.CharField(max_length=200)
surname = models.CharField(max_length=200)
date_of_birth = models.DateField(default=timezone.now)
current_class = models.ForeignKey(StudentClass, on_delete=models.SET_NULL, blank=True, null=True)
date_of_admission = models.DateField(default=timezone.now)
parent_mobile_number = models.CharField(max_length=15)
address = models.TextField()
class StudentBulkUpload(models.Model):
date_uploaded = models.DateTimeField(auto_now=True)
csv_file = models.FileField(upload_to='students/bulkupload/')
Run Code Online (Sandbox Code Playgroud)
forms.py
class StudentBulkUploadForm(forms.ModelForm):
class Meta:
model = StudentBulkUpload
fields = ("csv_file",)
Run Code Online (Sandbox Code Playgroud)
views.py
def uploadcsv(request):
if request.method == 'GET':
form = StudentBulkUploadForm()
return render(request, 'students/students_upload.html', {'form':form})
# If not GET method then proceed
try:
form = StudentBulkUploadForm(data=request.POST, files=request.FILES)
if …Run Code Online (Sandbox Code Playgroud)