python - 这是使用 Django 将 CSV 文件的内容插入数据库的好习惯吗?

标签 python django csv

我正在尝试将元素列表插入表中。输入来自 CSV 文件,某些条目可能是错误的。以下是好的做法吗? (全部都是伪代码)

for line in lines:
  my_obj_entries = parse_line(line)
  obj = Entry(name=my_obj_entries[0], value=my_obj_entries[1])
  try: 
    obj.clean()
    obj.save()
  except ValidationError:
    print "Invalid object for line %s" % line

我来自 Rails,这似乎是插入数据的方式,同时仍然检查有效性。

最佳答案

Django 中的数据验证是通过表单进行的。您应该使用表单来验证数据,然后使用表单的 save 方法保存数据。请参阅django documentation on forms ;创建验证您创建的模型的表单非常容易。

class Entry(models.Model):
    name = models.CharField()


class EntryForm(forms.ModelForm):
    class Meta:
        model = Entry

for line in lines:
    data = parse_line(line)
    form = EntryForm(data)
    if form.is_valid():
        form.save()
    else:
        print("form not valid: %s" % form.errors)

关于python - 这是使用 Django 将 CSV 文件的内容插入数据库的好习惯吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21203001/

相关文章:

Django:TemplateDoesNotExist at/home.html 在我的项目中

javascript - Django1.8和Python2.7 : Uncaught TypeError: Cannot read property '0' of undefined(…)

java - 使用java将MongoDB数据转换为csv

php - ElasticSearch 映射非可搜索字段

python - 使用 virtualenv 为不同 python 版本安装 Egg 时出错

python - Django-Ldap-身份验证

bash - 如何提取csv文件的一列

Python:如何将两个 for 语句变成一个?

python - manage.py 创建 super 用户 : AttributeError: module 'os' has no attribute 'PathLike'

python - Python 中的计算器不会更新为 "Entry"。这是一个 GUI 计算器