python - Web8
python flask8
html1
1. flask 에서 html 태그 사용하기
@app.route('/')
def home():
return '<h2>hello world3</h2>'
2. 주소에 html 파일 불러오기
from flask import Flask, render_template
@app.route('/login')
def login():
return render_template('login.html')
3. 리다이렉션(redirection)
리다이렉션은 우회하는 것을 말하는데 웹에서는 화면을 다른 방향을 돌려 보여주는 것을 의미한다. 아래의 코드를 보면 알 수 있는데 원래 주소에서 화면이 실행되는 것이 아니라 다음 페이지로 화면을 넘겨 보여준다는 걸 알 수 있다.
from flask import Flask, request, redirect
@app.route('/loginProc')
def loginProc():
userID = request.args.get('uid')
userPW = request.args.get('upw')
if (userID == 'n') and (userPW == '1'):
return redirect('/main')
else:
return '''
<script>
alert("아이디와 비번을 확인해주세요");
history.back();
</script>
'''
@app.route('/main')
def mianService():
return 'main service'
/main이란 주소는 로그인을 성공했을 때만 갈 수 있는 페이지로 main service라는 문자열을 을 보여준다.
4. 로그인 작동 원리(이론)
로그인을 성공했을 경우 세션을 생성한다. 세션은 사용자의 벙보를 저장하면서 로그인의 판별 여부를 돕는다. 3번 코드를 기준으로 세션은 if 문 안에서 생겨야 하며 /main페이지는 세션을 판단해 보여줘야 한다.(보조자료: https://ko.wikipedia.org/wiki/세션_(컴퓨터_과학))
5. html 기초
html은 웹페이지의 화면을 만드는 언어다. 이벤트 처리를 할 수 없고 각종 태그를 통해 화면을 꾸민다. html은 태그로 이루어졌는데 반드시 먼저 열린 태그는 나중에 닫혀야 하고 시작 태그와 종료 태그 총 2개지만 단일 태그로 존재하기도 한다.(보조자료: https://ko.wikipedia.org/wiki/HTML)
6. login.html파일
<!DOCTYPE html>
<html>
<head></head>
<body>
<h3>로그인 페이지</h3>
<form action = "/loginProc", method="GET">
<input type='text' name='uid' placeholder="ID"/> <br>
<input type='password' name='upw' placeholder="PASSWORD"/> <br>
<input type='submit' value="로그인"/>
</form>
</body>
</html>
(보조 자료: http://www.nextree.co.kr/p8428/)
전체 코드
1. python
from flask import Flask, request, render_template, redirect
app = Flask(__name__)
@app.route('/')
def home():
return '<h2>hello world3</h2>'
@app.route('/login')
def login():
return render_template('login.html')
@app.route('/loginProc')
def loginProc():
userID = request.args.get('uid')
userPW = request.args.get('upw')
if (userID == 'n') and (userPW == '1'):
return redirect('/main')
else:
return '''
<script>
alert("아이디와 비번을 확인해주세요");
history.back();
</script>
'''
@app.route('/main')
def mianService():
return 'main service'
if __name__ == '__main__':
app.run(debug=True)
2. login.html
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<h3>로그인1111</h3>
<form action = "/loginProc", method="GET">
<input type='text' name='uid' placeholder="ID"/> <br>
<input type='password' name='upw' placeholder="PASSWORD"/> <br>
<input type='submit' value="로그인"/>
</form>
</body>
</html>
실행화면
1. url: http://127.0.0.1:5000/2. url: http://127.0.0.1:5000/login
3. url: http://127.0.0.1:5000//loginProc?uid=n&upw=1 --> http://127.0.0.1:5000/main
4. url: http://127.0.0.1:5000/longinProc?uid=n&upw=0 --> http://127.0.0.1:5000/?uid=n&upw=0
댓글
댓글 쓰기