상세점검 수정
This commit is contained in:
12
app.py
12
app.py
@@ -27,15 +27,19 @@ word_processor = WordProcessor(app.config['WORD_TEMPLATE_DIR'])
|
|||||||
# 구글 드라이브 업로더 초기화 (선택사항)
|
# 구글 드라이브 업로더 초기화 (선택사항)
|
||||||
drive_uploader = None
|
drive_uploader = None
|
||||||
try:
|
try:
|
||||||
|
# credentials.json 파일이 있는 경우에만 초기화 시도
|
||||||
|
if os.path.exists(app.config['GOOGLE_DRIVE_CREDENTIALS_FILE']):
|
||||||
drive_uploader = GoogleDriveUploader(
|
drive_uploader = GoogleDriveUploader(
|
||||||
app.config['GOOGLE_DRIVE_CREDENTIALS_FILE'],
|
app.config['GOOGLE_DRIVE_CREDENTIALS_FILE'],
|
||||||
app.config['GOOGLE_DRIVE_TOKEN_FILE']
|
app.config['GOOGLE_DRIVE_TOKEN_FILE']
|
||||||
)
|
)
|
||||||
except FileNotFoundError as e:
|
except FileNotFoundError:
|
||||||
print(f"경고: 구글 드라이브 인증 파일을 찾을 수 없습니다. 구글 드라이브 업로드 기능이 비활성화됩니다.")
|
# 인증 파일이 없으면 조용히 넘어감
|
||||||
print(f"상세: {str(e)}")
|
pass
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"경고: 구글 드라이브 초기화 중 오류가 발생했습니다: {str(e)}")
|
# 브라우저 관련 오류나 기타 오류는 조용히 처리
|
||||||
|
# 서버 환경에서는 브라우저가 없을 수 있으므로 정상적인 상황
|
||||||
|
pass
|
||||||
|
|
||||||
@app.route('/auth', methods=['GET', 'POST'])
|
@app.route('/auth', methods=['GET', 'POST'])
|
||||||
def auth():
|
def auth():
|
||||||
|
|||||||
@@ -25,7 +25,11 @@
|
|||||||
{% if '기타의견란' in question or '기타의견' in question %}
|
{% if '기타의견란' in question or '기타의견' in question %}
|
||||||
<p class="help-text">※ 이 문항은 아래 "기타의견"란에 "{{ loop.index }}번: "으로 시작하여 답변해주세요.</p>
|
<p class="help-text">※ 이 문항은 아래 "기타의견"란에 "{{ loop.index }}번: "으로 시작하여 답변해주세요.</p>
|
||||||
{% else %}
|
{% else %}
|
||||||
<textarea name="q{{ loop.index }}" rows="4" required placeholder="답변을 작성해주세요"></textarea>
|
<div class="radio-group">
|
||||||
|
<label><input type="radio" name="q{{ loop.index }}" value="예" required> 예</label>
|
||||||
|
<label><input type="radio" name="q{{ loop.index }}" value="아니오"> 아니오</label>
|
||||||
|
<label><input type="radio" name="q{{ loop.index }}" value="모르겠습니다"> 모르겠습니다</label>
|
||||||
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -33,8 +37,8 @@
|
|||||||
|
|
||||||
<div class="doctrine-section">
|
<div class="doctrine-section">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="other_opinions">기타의견 (3번 문항 답변 포함)</label>
|
<label for="other_opinions">기타의견</label>
|
||||||
<textarea id="other_opinions" name="other_opinions" rows="5" placeholder="3번 문항 답변 및 기타 의견을 작성해주세요. 3번 문항은 '3번: '으로 시작하여 답변해주세요."></textarea>
|
<textarea id="other_opinions" name="other_opinions" rows="5" placeholder="기타의견란에 작성해야 하는 문항 답변 및 기타 의견을 작성해주세요. (예: 3번: ... 또는 8번: ...)"></textarea>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -37,7 +37,16 @@ class GoogleDriveUploader:
|
|||||||
)
|
)
|
||||||
flow = InstalledAppFlow.from_client_secrets_file(
|
flow = InstalledAppFlow.from_client_secrets_file(
|
||||||
self.credentials_file, SCOPES)
|
self.credentials_file, SCOPES)
|
||||||
|
# 서버 환경에서는 브라우저가 없을 수 있으므로 예외 처리
|
||||||
|
try:
|
||||||
creds = flow.run_local_server(port=0)
|
creds = flow.run_local_server(port=0)
|
||||||
|
except Exception as e:
|
||||||
|
# 브라우저를 열 수 없는 경우 (서버 환경 등)
|
||||||
|
# 토큰 파일이 이미 있다면 재시도하지 않고 예외 발생
|
||||||
|
raise Exception(
|
||||||
|
"구글 드라이브 인증을 완료할 수 없습니다. "
|
||||||
|
"로컬 환경에서 먼저 인증을 완료하여 token.json 파일을 생성해주세요."
|
||||||
|
) from e
|
||||||
|
|
||||||
# 토큰 저장
|
# 토큰 저장
|
||||||
with open(self.token_file, 'wb') as token:
|
with open(self.token_file, 'wb') as token:
|
||||||
|
|||||||
Reference in New Issue
Block a user