inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

남박사의 파이썬으로 실전 웹사이트 만들기

이 부분에서 redirect대신 render_template을 사용해도 될까요?

해결된 질문

407

journeytosth

작성한 질문수 3

2

안녕하세요 박사님~!

현재 로그인 페이지를 만드는 부분의 강의를 듣고 있는데요.

아래 코드에서 if data is None 일때, return값으로 redirect가 아닌 render_template("login.html")을 사용해도 무방한지 궁금하여 질문드립니다.

@app.route("/login", methods=["GET", "POST"])
def member_login():
    if request.method == "POST":
        email = request.form.get("email")
        password = request.form.get("pass")

        members = mongo.db.members
        data = members.find_one({"email": email})

        if data is None:
            flash("회원 정보가 없습니다.")
            # return render_template("login.html")
            return redirect(url_for("member_login"))

    else:
        return render_template("login.html")

python

답변 2

1

남박사

엄밀히 따지면 redirect 는 주소만 연결시켜주는 기능이고 render_template는 템플릿을 렌더링 하는 목적이라 서로 다른 기능이지만 너무 복잡하게 생각할 필요는 없을것 같습니다. 그래도 좀더 부연설명을 드리자면 redirect는 현재 세션 흐름의 결정을 direct한 주소에서 결정을 하게 되는 상황이고(현재 주소에서는 아무것도 안한게 됨) render_template는 현재 페이지에서 결정인 되는 상황입니다. 현재 강좌에서는 단순한 예시라 고민할 필요가 없는 부분이지만 만약 규모가 크고 구조가 복잡한 사이트를 제작할때는 이런 부분도 생각해볼 부분들이 많이 있으니 이정도만 참고하시면 될듯 합니다.

어쨌든 위에서의 목적은 사용자가 로그인되지 않았으니 다시 로그인을 하게끔 편의성을 제공하여 로그인페이지로 이동시켜주는게 주 목적인지라 redirect로 이동하던 render_template로 login.html 을 렌더링 하던 그 부분은 상관없으리라 생각됩니다.

관리적인 측면에선 redirect 가 좀 더 편하긴 합니다. (예: login.html 파일명을 login_new.html 로 변경하였을때... )

0

journeytosth

정성스러운 답변 감사드립니다! :) 

iis 접속후 자동으로 로그인 창이 나오도록 설정이 기능한가요?

0

65

2

리스트 이동 시 창 에러 발생

0

74

1

배포후 회원 등록 후 로그인 에러...

0

73

2

내부 서버 오류

0

67

2

app.config["MONGO_URI"] = "mongodb://localhost:27017/pm_db"

0

53

2

DB 검색하면 데이터가 없습니다. 라고 나와요. 5시간을 찾아봐도 모르겠어서 문의드려봅니다.

0

47

1

몽고db studio3T를 깔았는데

0

57

2

flake8과 linter

0

73

3

500이 뜹니다.

0

57

2

첨부파일 삭제

0

66

2

검색기능 질문

0

61

2

google.py

0

66

2

Studio 3T에 DB insert가 되지 않는 문제를 해결하지 못하고 있습니다 ㅠ

0

81

3

혹시 전체 코드 공개되어 있나요?

0

96

1

join.html 의 form 태그값 을 member_join() 에서 처리못함.

0

103

1

google.py 몽고db 샘플데이터 만들기

0

100

2

flake8 설치 이후 명령팔레트에서 linter가 안보입니다.

0

236

2

파이썬으로 만들어서 웹호스팅에 올릴경우

0

304

1

현재 구글검색 무한스크롤변경 문의합니다

0

297

1

몽고디비아틀라스로 추가 공부해서 올립니다.

0

218

1

IIS 500.19에러

0

659

2

버전 문제도 수정했는데 결과가 안나옵니다.

0

258

1

데이터베이스 저장관련 질문입니다.

0

270

1

test가 생기지 않습니다.

0

509

3