이 블로그 포스트에서는 Tornado 웹 프레임워크를 사용하여 직원 출근/퇴근 체크인 시스템을 구현하는 방법에 대해 설명하겠습니다.
준비하기
기본적으로 Tornado를 설치해야 합니다. 다음 명령을 사용하여 설치할 수 있습니다:
pip install tornado
또한, MySQL 데이터베이스를 사용하므로 mysql-connector-python
도 설치해야 합니다:
pip install mysql-connector-python
데이터베이스 구성
직원 정보를 저장하기 위해 MySQL 데이터베이스를 사용합니다. employees
테이블을 생성하고 다음과 같은 구조로 정의합니다:
CREATE TABLE employees (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
timestamp DATETIME NOT NULL
);
Tornado 애플리케이션 만들기
다음은 Tornado 애플리케이션을 만드는 예시 코드입니다. handler.py
파일을 생성하고 다음 코드를 작성합니다:
import tornado.ioloop
import tornado.web
import mysql.connector
from datetime import datetime
class CheckinHandler(tornado.web.RequestHandler):
def initialize(self):
self.db = mysql.connector.connect(
host="localhost",
user="username",
password="password",
database="database_name"
)
def get(self):
self.render("checkin.html")
def post(self):
name = self.get_argument("name")
# 현재 시간으로 timestamp 생성
timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
cursor = self.db.cursor()
cursor.execute("INSERT INTO employees (name, timestamp) VALUES (%s, %s)",
(name, timestamp))
self.db.commit()
cursor.close()
self.write("출근 체크인이 완료되었습니다.")
def make_app():
return tornado.web.Application([
(r"/checkin", CheckinHandler),
])
if __name__ == "__main__":
app = make_app()
app.listen(8888)
tornado.ioloop.IOLoop.current().start()
위의 코드에서 CheckinHandler
클래스는 /checkin
경로로 들어오는 GET 및 POST 요청을 처리합니다. GET 요청은 checkin.html
템플릿을 렌더링하고, POST 요청은 name
파라미터를 받아와 데이터베이스에 직원 정보를 저장합니다.
체크인 HTML 템플릿 만들기
체크인 페이지에 해당하는 HTML 템플릿을 생성하고 checkin.html
파일에 저장합니다:
<!DOCTYPE html>
<html>
<head>
<title>직원 출근 체크인</title>
</head>
<body>
<h1>직원 출근 체크인</h1>
<form action="/checkin" method="POST">
<label for="name">이름:</label>
<input type="text" id="name" name="name" required>
<br>
<input type="submit" value="출근 체크인">
</form>
</body>
</html>
위의 HTML 코드는 간단한 POST
폼을 포함하고 있습니다. 직원의 이름을 입력하고 제출하면 /checkin
경로로 POST 요청이 전송됩니다.
애플리케이션 실행
터미널에서 다음 명령을 실행하여 애플리케이션을 실행합니다:
python handler.py
이제 웹 브라우저에서 http://localhost:8888/checkin
으로 이동하여 직원 출근 체크인을 할 수 있습니다.
마치며
이번 포스트에서는 Tornado를 사용하여 직원 출근/퇴근 체크인 시스템을 구현하는 방법을 소개했습니다. Tornado의 간결한 코드와 비동기 처리 기능은 웹 애플리케이션 개발에 매우 유용합니다. Tornado를 사용하여 더욱 복잡하고 실시간 기능이 필요한 웹 애플리케이션을 구축할 수도 있습니다.
참고: Tornado 공식 문서