Exemplo n.º 1
0
def register_user():
    """포토로그 사용자 등록을 위한 함수"""

    form = RegisterForm(request.form)
    
    if form.validate():

        username = form.username.data
        email = form.email.data
        password = form.password.data

        try:
            user = User(username, 
                        email, 
                        generate_password_hash(password))
            dao.add(user)
            dao.commit()
        
            Log.debug(user) 
            
        except Exception as e:
            error = "DB error occurs : " + str(e)
            Log.error(error)
            dao.rollback()
            raise e
        
        else:
            # 성공적으로 사용자 등록이 되면, 로그인 화면으로 이동.
            return redirect(url_for('.login', 
                                    regist_username=username)) 
    else:
        return render_template('regist.html', form=form)
Exemplo n.º 2
0
def register_user():
    """포토로그 사용자 등록을 위한 함수"""

    form = RegisterForm(request.form)
    
    if form.validate():

        username = form.username.data
        email = form.email.data
        password = form.password.data

        try:
            user = User(username, 
                        email, 
                        generate_password_hash(password))
            dao.add(user)
            dao.commit()
        
            Log.debug(user) 
            
        except Exception as e:
            error = "DB error occurs : " + str(e)
            Log.error(error)
            dao.rollback()
            raise e
        
        else:
            # 성공적으로 사용자 등록이 되면, 로그인 화면으로 이동.
            return redirect(url_for('.login', 
                                    regist_username=username)) 
    else:
        return render_template('regist.html', form=form)
Exemplo n.º 3
0
def register_action():
    form = Register_user_form(request.form)
    error_msg = None
    if form.validate():
        name = form.username.data
        password = form.password.data
        email = form.email.data

        #id 중복 확인
        if __get_user(name):
            error_msg = name + "은 이미 가입된 ID입니다."
            return render_template('/register_user.html',
                                   error=error_msg,
                                   form=form)

        try:
            #DB작업
            new_user = User(name, email, generate_password_hash(password))
            dao.add(new_user)
            dao.commit()

        except Exception as e:
            error = "DB error : " + str(e)
            print error
            dao.rollback()
            raise e
        return redirect(url_for('.login_form_page', regist_user=name))
    return render_template('/register_user.html', form=form, error=error_msg)
Exemplo n.º 4
0
def register_user():
    form = RegisterForm(request.form)

    if form.validate():
        username = form.username.data
        email = form.email.data
        password = form.password.data

        try:
            user = User(username=username,
                        email=email,
                        password=generate_password_hash(password))
            dao.add(user)
            dao.commit()

            Log.debug(user)

        except Exception as e:
            error = "DB error occurs: " + str(e)
            Log.error(error)
            dao.rollback()
            raise e

        else:
            return redirect(url_for('.login', register_user=username))

    else:
        return render_template('../photolog/templates/regist.html', form=form)
Exemplo n.º 5
0
def upload_photo():
    """ Form으로 파일과 변수들을 DB에 저장하는 함수. """

    form = PhotoUploadForm(request.form)

    # HTTP POST로 요청이 오면 사용자 정보를 등록
    if form.validate():
        #: Session에 저장된 사용자 정보를 셋팅
        user_id = session['user_info'].id
        username = session['user_info'].username

        #: Form으로 넘어온 변수들의 값을 셋팅함
        tag = form.tag.data
        comment = form.comment.data
        lat = form.lat.data
        lng = form.lng.data
        upload_date = datetime.today()

        try:
            #: Exif에서 전달받은 data 형식을 파이썬 date 객체로 변환
            taken_date = datetime.strptime(form.taken_date.data,
                                           "%Y:%m:%d %H:%M:%S")
        except:
            #: date 포맷 예외 발생: exif가 없거나,
            #: 사진찍은 시간이 없는 경우에는 현재시간으로 대체
            taken_date = datetime.today()

        #: 업로드되는 파일정보 값들을 셋팅한다.
        upload_photo = request.files['photo']
        filename = None
        filesize = 0
        filename_orig = upload_photo.filename

        try:
            #: 파일 확장자 검사 : 현재 jpg, jpeg만 가능
            if upload_photo and __allowed_file(upload_photo.filename):

                ext = (upload_photo.filename).rsplit('.', 1)[1]

                #: 업로드 폴더 위치는 얻는다.
                upload_folder = \
                    os.path.join(current_app.root_path,
                                 current_app.config['UPLOAD_FOLDER'])
                #: 유일하고 안전한 파일명을 얻는다.
                filename = \
                    secure_filename(username +
                                    '_' +
                                    unicode(uuid.uuid4()) +
                                    "." +
                                    ext)

                upload_photo.save(os.path.join(upload_folder, filename))

                filesize = \
                    os.stat(upload_folder + filename).st_size

                #: 썸네일을 만든다.
                make_thumbnails(filename)

            else:
                raise Exception("File upload error : illegal file.")

        except Exception as e:
            Log.error(str(e))
            raise e

        try:
            #: 사진에 대한 정보 DB에 저장
            photo = Photo(user_id, tag, comment, filename_orig, filename,
                          filesize, lat, lng, upload_date, taken_date)
            dao.add(photo)
            dao.commit()

        except Exception as e:
            dao.rollback()
            Log.error("Upload DB error : " + str(e))
            raise e

        return redirect(url_for('.show_all'))
    else:
        return render_template('upload.html', form=form)
Exemplo n.º 6
0
def upload_photo():
    """ Form으로 파일과 변수들을 DB에 저장하는 함수. """

    form = PhotoUploadForm(request.form)
        
    # HTTP POST로 요청이 오면 사용자 정보를 등록
    if form.validate():  
        #: Session에 저장된 사용자 정보를 셋팅
        user_id = session['user_info'].id
        username = session['user_info'].username
        
        
        #: Form으로 넘어온 변수들의 값을 셋팅함
        tag = form.tag.data
        comment =form.comment.data
        lat = form.lat.data
        lng = form.lng.data
        upload_date = datetime.today()
    
        try:
            #: Exif에서 전달받은 data 형식을 파이썬 date 객체로 변환
            taken_date = datetime.strptime(form.taken_date.data, 
                                           "%Y:%m:%d %H:%M:%S")
        except :
            #: date 포맷 예외 발생: exif가 없거나, 
            #: 사진찍은 시간이 없는 경우에는 현재시간으로 대체 
            taken_date = datetime.today()
        
        #: 업로드되는 파일정보 값들을 셋팅한다.
        upload_photo = request.files['photo']
        filename = None
        filesize = 0
        filename_orig = upload_photo.filename
    
        try:
            #: 파일 확장자 검사 : 현재 jpg, jpeg만 가능
            if upload_photo and __allowed_file(upload_photo.filename):
                
                ext = (upload_photo.filename).rsplit('.', 1)[1]
    
                #: 업로드 폴더 위치는 얻는다.
                upload_folder = \
                    os.path.join(current_app.root_path, 
                                 current_app.config['UPLOAD_FOLDER'])
                #: 유일하고 안전한 파일명을 얻는다.   
                filename = \
                    secure_filename(username + 
                                    '_' + 
                                    unicode(uuid.uuid4()) +
                                    "." + 
                                    ext)
                
                upload_photo.save(os.path.join(upload_folder, filename))
                
                filesize = os.stat(upload_folder + filename).st_size
                
                #: 썸네일을 만든다.
                make_thumbnails(filename)
                
            else:
                raise Exception("File upload error : illegal file.")
    
        except Exception as e:
            Log.error(str(e))
            raise e
    
        try :
            #: 사진에 대한 정보 DB에 저장
            photo = Photo(user_id, tag, comment, filename_orig, filename, 
                          filesize, lat, lng, upload_date, taken_date)
            dao.add(photo)
            dao.commit()
    
        except Exception as e:
            dao.rollback()
            Log.error("Upload DB error : " + str(e))
            raise e
    
        return redirect(url_for('.show_all'))
    else:
        return render_template('upload.html', form=form)