사용자 가 져 오기

7346 단어 가 져 오기
edX 를 구축 할 때 이러한 수요 에 직면 할 수 있 습 니 다. 학생 을 사용자 로 대량으로 가 져 옵 니 다.eX 의 기본 등록 방식 은 메 일 등록 입 니 다.학교 측의 데이터베이스 에서 메 일 은 무효 일 수 있 기 때문에 우 리 는 학 번 을 사용자 이름 으로 사용 합 니 다.비밀번호 도 기본적으로 학 번 으로 설정 합 니 다.
여기에 실행 가능 한 해결 방안 을 제시 하 다.
대체적인 사고 방식.
  • 학교 데이터베이스 에서 사용자 파일 내 보 내기 (csv 형식)
  • 스 크 립 트 를 작성 하여 csv 파일 에서 필요 한 필드 (예 를 들 어 학 번, 이름)
  • 를 가 져 옵 니 다.
  • ex 셸 환경 에 들 어가 서 사용자 가 져 온 스 크 립 트 를 실행 합 니 다
  • 세부 사항 을 실시 하 다.
    데이터베이스 에서 내 보 낸 파일 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
    
    

    좋은 웹페이지 즐겨찾기