我想使用用户名和密码(存储在Excel电子表格中的学生代码)创建帐户,该怎么办?
答案 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]是很重要的,因为这会哈希数据库中的密码。