1. Python์ผ๋ก API ๊ฐ๋ฐ
Python์ Flask์ ์ด์ฉํ์ฌ API์ ์์ ํด๋ณด์.
์ฐ์ PostgreSQL์์ DB ์ค๊ณ์ ๋ง๊ฒ ํ ์ด๋ธ์ ์์ฑํ๋ค.
(DB์์ฑ ๋ฐฉ๋ฒ์ ๋ณ๋ ์ค๋ช ํ์ง ์๋๋ค.)
1.1. Python Flask APIํ๊ฒฝ ์ค์
โ config.py ( ์์น: linkservice/server/config/config.py )
--------------------------------------------------------------------------------------------------
config.py์ ๊ฐ๋ฐ๊ณ(Development)์ ์ด์๊ณ(Production) ํ๊ฒฝ์ค์ ์ ์ํ ๊ฒ์ผ๋ก ์๋ฒ(server.py) ๊ตฌ๋ ์ ํธ์ถํ๋ค.
SQLALCHEMY_DATABASE_URI์ ๋ณด๋ฅผ ์ฌ๋ฌ๋ถ์ DB์ ๋ณด๋ก ๋ณ๊ฒฝํ๊ณ , ๋ค๋ฅธ ์ต์ ๋ค์ ์ฐธ๊ณ ํ์ฌ ํ์์ ์ถ๊ฐ/์ญ์ ํ๋ฉด ๋๋ค.
์ด๋ฏธ์ง ์ ์ฅ ์์น์ค์ ์ CDNํน์ NASํํ๋ก ์ ์ํ๊ณ ์ ๋ณ๋ ํด๋๋ก ๋ถ๋ฆฌํ์ผ๋ฉฐ, ๋งํฌ์ ๋ณด์ ์ด๋ฏธ์ง ์ ๋ณด ์ ์ฅ์ IMAGE_URLํํ๋ก ์ ์ฅ๋๋ค.
ํ๊ฒฝํ์ผ ๋ด์ฉ์ ์์ผ๋ก ์งํํ๋ฉด์ ์ค๋ช ๋ ๊ฒ์ด๋ค.
import os
dir = os.path.dirname(os.path.abspath(os.path.dirname(__file__)))
class Development(object):
DEBUG = True
FLASK_APP = 'linkservice_dev'
ENV = 'development'
## DB URL FOR DEVELOPMENT
SQLALCHEMY_DATABASE_URI = 'postgresql://์ฌ์ฉ์:์ฌ์ฉ์ํจ์ค์๋@localhost:5432/๋ฐ์ดํ๋ฒ ์ด์ค๋ช
'
# ๋ฐ์ดํฐ ๋ณ๊ฒฝ์ฌํญ์ ๋ํด ์ปค๋ฐ ์ ํ๋ก ์๋ฆผ ์ฌ๋ถ
SQLALCHEMY_TRACK_MODIFICATIONS = True
# Query Debug ์ฌ๋ถ ๋ฐ DB POOL
SQLALCHEMY_ECHO = True
SQLALCHEMY_POOL_SIZE = 20
SQLALCHEMY_POOL_RECYCLE = 3600
#JSON์์ ํ๊ธ ํํ์ ์ํด์ ๋ฐ์
JSON_AS_ASCII = False
#์ด๋ฏธ์ง ์์น ์ค์
image_folder = os.path.normpath(os.path.join(dir, os.pardir)) + '/client/public/images/'
COVER_IMAGE_FORDER = image_folder
IMAGE_FORDER = image_folder
IMAGE_URL = 'http://127.0.0.1:3000/images/'
class Production(object):
DEBUG = False
SQLALCHEMY_TRACK_MODIFICATIONS = False
SQLALCHEMY_ECHO = False
FLASK_APP = 'linkservice'
ENV = 'production'
## DB URL FOR PRODUCTION
SQLALCHEMY_DATABASE_URI = 'postgresql://์ฌ์ฉ์:์ฌ์ฉ์ํจ์ค์๋@localhost:5432/๋ฐ์ดํ๋ฒ ์ด์ค๋ช
'
#JSON์์ ํ๊ธ ํํ์ ์ํด์ ๋ฐ์
JSON_AS_ASCII = False
#์ด๋ฏธ์ง ์์น ์ค์
image_folder = os.path.normpath(os.path.join(dir, os.pardir)) + '/images/'
COVER_IMAGE_FORDER = image_folder
IMAGE_FORDER = image_folder
#์ด์๊ณ
IMAGE_URL = 'https://www.linkservice.com/img/'
app_config = {
'development': Development(),
'production': Production(),
}
โ create_app.py ( ์์น: linkservice/server/config/create_app.py)
---------------------------------------------------------------------------------------------------
create_app.py๋ ํ๊ฒฝํ์ผ์ ์ฝ์ด Flask App์ ์คํํ๋ค.
from . import config
from flask import Flask
def create_app(environment):
# configํ์ผ์์ ๋ถ๋ ค์ค๊ธฐ
config_map = {
'development': config.Development(),
'production': config.Production(),
}
config_obj = config_map[environment.lower()]
app = Flask(__name__)
app.config.from_object(config_obj)
return app
'React&Python์ผ๋ก ์น๊ฐ๋ฐ > ๋งํฌ์๋น์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
#6. Python์ผ๋ก API ๊ฐ๋ฐ(๋ฐ์ดํ๋ฒ ์ด์ค ๋ชจ๋ธ ์์ ) (0) | 2023.03.10 |
---|---|
#5. Python์ผ๋ก API ๊ฐ๋ฐ(๊ธฐ๋ณธํ๊ฒฝ๊ตฌ์ฑ) (0) | 2023.03.09 |
#4. ํ๋ก์ ํธ ํด๋ ๊ตฌ์กฐ ๋ฐ ํ๊ฒฝ์ค์ (0) | 2023.03.09 |
#3. ๊ฐ๋ฐ ์ค๋น ( ๋ฐฑ์๋์ ํ๋ก ํธ์๋ ๊ด๋ จ ํด ์ค์น ) (0) | 2023.03.07 |
#2. ํ๋ฉด ๊ตฌ์ฑ๊ณผ DB ๋ฐ API ์ ์ (0) | 2023.03.06 |