일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 파싱
- 프로그램
- HTTP
- 부트스트랩
- Tequila
- twilio
- 최저가
- 프로젝트
- Game
- 상태코드
- Python
- 파이썬
- HTML
- 오류
- Pygame
- 웹크롤링
- Endpoint
- 유데미
- Sheety
- phython
- ndarray
- SMTP
- 계산기
- 쉬티
- API
- API플랫폼
- 웹페이지
- 게임
- udemy
- class
Archives
- Today
- Total
데이터 분석가
노트북 하기 좋은 카페 찾기 프로젝트(Udemy Final Project 6) 본문
안녕하세요 !
좋은 커피와 빠른 WIFI를 제공하는 카페를 찾고 있지 않으신가요 ??
이번 시간에는 노트북을 하기 좋은 환경과 좋은 커피를 제공하는 카페 정보를 얻는
API 웹 사이트를 구축해보겠습니다 !
단계
1. 데이터 저장
2. 웹 서버 구축
3. API Endpoints 생성
우선 파이썬의 Flask 웹 프레임워크를 이용해 API를 구축합니다.
pip install flask flask_sqlalchemy
필요한 패키지 설치
1. 데이터 저장
2. 웹 서버 구축
<!DOCTYPE html>
<html>
<head>
<title>Cafes</title>
</head>
<body>
<h1>Cafes</h1>
<!-- 카페 추가 폼 -->
<form action="/add_cafe" method="POST">
<label for="name">Name:</label>
<input type="text" id="name" name="name" required><br><br>
<label for="wifi">Wi-Fi:</label>
<select id="wifi" name="wifi" required>
<option value="1">Available</option>
<option value="0">Not Available</option>
</select><br><br>
<label for="location">Location:</label>
<input type="text" id="location" name="location" required><br><br>
<label for="available_seat">Available Seat:</label>
<input type="number" id="available_seat" name="available_seat" required><br><br>
<label for="coffee_price">Coffee Price:</label>
<input type="number" id="coffee_price" name="coffee_price" required><br><br>
<input type="submit" value="Add Cafe">
</form>
<h2>Cafe List</h2>
<ul>
{% for cafe in cafes %}
<li>
<strong>{{ cafe['name'] }}</strong><br>
Wi-Fi: {% if cafe['wifi'] == 1 %}Available{% else %}Not Available{% endif %}<br>
Location: {{ cafe['location'] }}<br>
Available Seat: {{ cafe['available_seat'] }}<br>
Coffee Price: {{ cafe['coffee_price'] }}<br>
<!-- 카페 삭제 폼 -->
<form action="/delete_cafe/{{ cafe['id'] }}" method="POST">
<input type="submit" value="Delete">
</form>
</li>
{% endfor %}
</ul>
</body>
</html>
3. API 웹 페이지 구축
import os
from flask import Flask, render_template, request, jsonify
import sqlite3
app = Flask(__name__)
DATABASE = 'cafes.db'
def get_db_connection():
conn = sqlite3.connect(DATABASE)
conn.row_factory = sqlite3.Row
return conn
def create_table():
conn = get_db_connection()
conn.execute('''
CREATE TABLE IF NOT EXISTS cafes (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
wifi INTEGER NOT NULL,
location TEXT NOT NULL,
available_seat INTEGER NOT NULL,
coffee_price INTEGER NOT NULL
);
''')
conn.commit()
conn.close()
def get_cafes():
conn = get_db_connection()
cafes = conn.execute('SELECT * FROM cafes').fetchall()
conn.close()
return cafes
@app.route('/')
def index():
# 모든 카페 데이터 가져오기
cafes = get_cafes()
return render_template('index.html', cafes=cafes)
@app.route('/add_cafe', methods=['POST'])
def add_cafe():
# 폼 데이터에서 카페 정보 추출
name = request.form['name']
wifi = int(request.form['wifi'])
location = request.form['location']
available_seat = int(request.form['available_seat'])
coffee_price = int(request.form['coffee_price'])
conn = get_db_connection()
# 카페 정보를 데이터베이스에 삽입
conn.execute('INSERT INTO cafes (name, wifi, location, available_seat, coffee_price) VALUES (?, ?, ?, ?, ?)', (name, wifi, location, available_seat, coffee_price))
conn.commit()
conn.close()
return jsonify({'message': 'Cafe added successfully'})
@app.route('/delete_cafe/<int:cafe_id>', methods=['POST'])
def delete_cafe(cafe_id):
conn = get_db_connection()
# 주어진 ID의 카페를 데이터베이스에서 삭제
conn.execute('DELETE FROM cafes WHERE id = ?', (cafe_id,))
conn.commit()
conn.close()
return jsonify({'message': 'Cafe deleted successfully'})
if __name__ == '__main__':
# 데이터베이스 파일 삭제
if os.path.exists(DATABASE):
os.remove(DATABASE)
# 데이터베이스 테이블 생성
create_table()
app.run(debug=True)
API 웹 사이트를 구축하였습니다
그러면 실행을 시켜보도록 할게요
스타벅스와 투썸플레이스가 리스트에서 보이네요 !
Wi-Fi 여부와, 위치, 이용 가능한 좌석 수, 커피 가격을 추가하고 확인할 수 있습니다 !
나중에 시간이 조금 더 된다면 조금 더 퀄리티가 좋은 카페 공유 플랫폼을 만들어 보고 싶네요 !
'유데미 부트캠프 프로젝트(Final)' 카테고리의 다른 글
파이썬 가장 위험한 글쓰기 (udemy project 8) (0) | 2023.06.28 |
---|---|
ToDoList 웹 페이지 구축 (Udemy Project 7) (0) | 2023.06.28 |
파이썬 breakout game 프로젝트(Udemy Final Project 5) (0) | 2023.06.26 |
파이썬 타이핑 테스트 프로젝트(Udemy Final Project 4) (0) | 2023.06.25 |
파이썬 이미지 워터마크 프로젝트(Udemy Final Project 3) (0) | 2023.06.01 |
Comments