2014-11-11 5 views
0

저는 Flask의 을 사용하고 있습니다. 암호화 된 URL을 생성하려면 위험한입니다. 그것은 최고이지만 문제가 발생했습니다 - 나는 Heroku Scheduler에서 매일 스크립트를 실행하고 있습니다. 스크립트는 app 폴더 외부, run.py와 Procfile이있는 디렉토리에 있습니다. 3 개의 변수를 사용하여 페이로드를 만들고 마지막 하나는 URL에 할당 된 함수입니다.URL 루트를 인식하지 못하는 위험합니다

payload = reactivate_account_link(candidate.candidate_id, candidate.email, 'reactivate_account') 

reactivate_account_link은 다음과 ...

def reactivate_account_link(candidate_id, candidate_email, path): 
    s = get_serializer() 
    loads = [candidate_id, candidate_email] 
    payload = s.dumps(loads) 
    return url_for(path, payload=payload, _external=True) 

문제는 URL이 적절한 루트를 가지고 있지 않습니다이다.

http://[--DOMAIN--]/candidates/reactivate_account/WzYsInN1cmFqa2FwQGdtYWlsLmNvbSJd.A484cnO8rRcAqe2M2mNrfoGludo/ 

이 지역 및 제품 모두 마찬가지입니다 반대로 그것은 ...

http://localhost/candidates/reactivate_account/WzYsInN1cmFqa2FwQGdtYWlsLmNvbSJd.A484cnO8rRcAqe2M2mNrfoGludo/ 

을 만듭니다. URL 하드 코딩을 피하고 싶습니다.

답변

2

앱에 대해 SERVER_NAME을 구성해야합니다. 그렇지 않으면 기본값이 'localhost'이됩니다. 앱을 만들고 구성 할 때마다 다음을 추가하십시오.

SERVER_NAME = 'myapp.heroku.com' # or whatever the external url should be 
+0

감사합니다. –

관련 문제