Django:如何在Excel中从用户表授予用户帐户

时间:2019-11-09 12:14:28

标签: python django

我想使用用户名和密码(存​​储在Excel电子表格中的学生代码)创建帐户,该怎么办?

2 个答案:

答案 0 :(得分:0)

首先,将Excel数据导出为CSV文件。然后,您可以使用csv库轻松地遍历CSV文件并将数据插入Django。

例如,假设CSV文件中的字段如下:

GestureDetector(
            onTap: () {
              //Navigator.of(context).pop();

            },
            child: new Align(
                alignment: Alignment.bottomRight,
                child: Container(
                  margin: EdgeInsets.all(20),
                  padding: EdgeInsets.all(10),
                  decoration: BoxDecoration(
                      borderRadius: BorderRadius.circular(100),
                      border: Border.all(width: 2, color: Colors.white)),
                  child: Icon(
                    Icons.cancel,
                    color: Colors.white,
                  ),
                )),
          ),

然后,您可以使用此代码逐行读取CSV文件并将用户添加到数据库:

name, username, password

编辑:

如果您正在使用Django模型(或对其进行扩展),则应使用def bulk_add_users(path): with open('path_to_csv_file', mode='r') as csv_file: reader = csv.reader(csv_file) _ = next(reader) for line in reader: name = line[0] username = line[1] password = line[2] if not (name and username and password): raise ValueError(f'Invalid User data!') user = User(name=name, username=username) user.set_password(password) user.save() ,以便在保存之前进行密码加密。

答案 1 :(得分:0)

您可以使用用户名和密码创建User对象。例如,通过处理一个csv文件,其中第一列包含username,第二列包含 raw password

from csv import reader
from django.contrib.auth.models import User

with open('users.csv', 'r') as csv_file:
    csvf = reader(csv_file)
    data = []
    for username, password, *__ in csvf:
        user = User(username=username)
        user.set_password(password)
        data.append(user)
    User.objects.bulk_create(data)

在此处使用.set_password(..) [Django-doc]是很重要的,因为这会哈希数据库中的密码。