300x250
웹 서버 홈페이지는 시놀로지 NAS에서 호스팅 할 생각입니다.
NAS - Docker Linux - Flask WebServer
나스에서 바로 웹서버를 띄우는 방법은 여러 가지 있습니다(WordPress, Docker, php) 등등
근데 Flask를 배우려고 계속해봤으나 여태껏 제대로 배워두지를 않아서 하는 김에 확실하게 해 보려고요
현재 NAS에서는 도커로 리눅스 서버를 띄워둔 상태입니다.
리눅스에서 flask를 설치하기만 하면 바로 웹서버를 띄울 수 있으니 flask 코드에 대해 잠깐 배워봤습니다.
2022-10-07
더보기
공부 끝난 코드
from flask import Flask, url_for, request, render_template, redirect
from flask import Markup
app = Flask(__name__)
#redirect - url 리다이렉션
@app.route("/")
def index():
return redirect(url_for('login'))
#/login head가 POST방식일 경우에만 작동
@app.route('/login', methods=['POST', 'GET'])
def login():
error = None
if request.method == 'POST':
if valid_login(request.form['username'],
request.form['password']):
return log_the_user_in(request.form['username'])
else:
error = 'Invalid username/password'
# 아래의 코드는 요청이 GET 이거나, 인증정보가 잘못됐을때 실행된다.
return render_template('login.html', error=error)
#Jinja 언어 사용법
@app.route('/hello/')
@app.route('/hello/<name>')
def hello(name=None):
return render_template('hello.html', name=name)
#flask 공식 문서에 나와있던 예제 유저이름 출력
@app.route("/user/<username>/")
def profile(username):
return 'user : {}'.format(username)
#flask 공식 문서에 나와있던 게시글 번호 출력 예제
@app.route("/post/<int:post_id>/")
def show_post(post_id):
return 'post : {}'.format(post_id)
#url 받아와서 출력 index,login,index,profile 에 해당되는 url이 반환된다
with app.test_request_context():
print(url_for('index'))
print(url_for('login'))
print(url_for('index', next='/'))
print(url_for('profile', username='John Doe'))
with app.test_request_context('/hello', method='POST'):
# now you can do something with the request until the
# end of the with block, such as basic assertions:
assert request.path == '/hello'
assert request.method == 'POST'
with app.request_context(pass): # pass = environ
assert request.method == 'POST'
if __name__ == "__main__" :
app.run(debug=True)
공부는 flask(0.11) 공식문서를 참조했습니다.
아무래도 django에 비해 손을 대야 하는 부분이 많습니다.
스레드나 url 등등,,
오늘은 [빠르게 시작하기] 부분을 통해 플라스크의 기초적인 내용에 대해 익혔으니
2022-10-10까지 플라스크로 대충 기초적인 틀의 웹서버를 만들고
그에 맞는 기초적인 html을 짜겠습니다.
아마 부트스트랩으로 외형을 꾸미게 될 것 같습니다.
UI까지 하려면 좀 힘들듯
DB는 아마 mongoDB를 사용하거나 mariaDB를 사용할 것 같습니다.
이후 웹서버가 어느정도 개발되면 깃허브에도 올려봐야겠습니다.
이 프로젝트의 목적은 웹서버 구축에 대한 경험과 웹의 전반적인 지식 습득에 있습니다.
300x250
'개인 프로젝트 > 개인서버에서 도커로 웹서버 제작하기' 카테고리의 다른 글
4. Todo 삭제 기능 구현과 에러 해결 (0) | 2022.10.31 |
---|---|
3. DB 연동 이후 오류 해결, 그리고 게시글 작성 이후 DB에 전달기능 구현 (0) | 2022.10.30 |
2. Flask 웹서버 기초코드 작성 그리고 DB연동 (1) | 2022.10.13 |
댓글