사용자 가 져 오기
7346 단어 가 져 오기
여기에 실행 가능 한 해결 방안 을 제시 하 다.
대체적인 사고 방식.
데이터베이스 에서 내 보 낸 파일 student. csv 를 다음 과 같이 가정 합 니 다.
, , ,
, 201011, , 1007
, 201012, , 1008
, 201013, , 1009
...
대본 을 잘 쓰다
cd /tmp mkdir userImportTooldir cd userImportToolDir
데이터베이스 에서 내 보 낸 student. csv 를 userImportToolDir 디 렉 터 리 에 업로드 합 니 다.
현재 디 렉 터 리 에 새 userimport_tool. py 내용 은
#coding=utf-8
import unicodecsv from django.contrib.auth.models import User from student.models import UserProfile, Registration from django.core.exceptions import ObjectDoesNotExist filename = './student.csv' f = open(filename) r=unicodecsv.reader(f, encoding='utf-8') def create_student_user(username,password,email,name): ''' - username edx , student.csv - password edx , student.csv - email edx ( ), username+"@example.com" , - name: ''' user = User(username=username, email=email, is_active=True) user.set_password(password) registration = Registration() user.save() registration.register(user) profile = UserProfile(user=user) profile.name = name profile.save() i = 0 for row in r : if i == 0: continue #csv , #print "name:%s,student_id:%s"%(row[0],row[1]) username = row[1] #student_id password = row[1] email = username+"@example.com" name = row[0] try: user_live = User.objects.get(username=username) except ObjectDoesNotExist: create_student_user(username,password,email,name) i=i+1 print "ok~"
테스트 에 따 르 면 8000 명의 학생 이 있 으 면 10 여 분 정도 가 져 와 야 한다.
설치 의존
sudo -H -u edxapp bash
source /edx/app/edxapp/edxapp_env
pip install unicodecsv
가 져 오기 시작
cd /tmp/userImportTool
sudo -u www-data /edx/bin/python.edxapp /edx/app/edxapp/edx-platform/manage.py lms --settings aws shell # edX shell
import sys
sys.path.append("./")
import user_import_tool
사용 시작
/login 에서 이메일 과 password 로 로그 인하 면 됩 니 다.
이러한 로그 인 방식 을 사용 하고 싶 지 않 은 경우 사용자 인증 을 직접 작성 할 수 있 습 니 다. 예 를 들 어 username 과 password 로 로그 인 하 는 것 과 같은 것 입 니 다.
후기
글 에서 우리 가 만 든 사용 자 는 python 코드 를 사용 합 니 다.
또한 사용자 eX 를 만 드 는 데 도 셸 명령 을 사용 할 수 있 으 며 셸 스 크 립 트 를 쓰 는 학생 들 에 게 유용 할 수 있 습 니 다.
sudo -u www-data /edx/bin/python.edxapp ./manage.py lms --settings aws create_user -e [email protected]
sudo -u www-data /edx/bin/python.edxapp ./manage.py lms --settings aws changepassword xxxxxx