TV 채널 웹사이트: 환경 변수 및 데이터베이스
베르셀: https://khmerweb-tv-channel.vercel.app/
프로젝트에서 환경 변수를 생성하고 사용하려면 예를 들어 python-dotenv와 같은 패키지를 설치해야 합니다.
pip install python-dotenv
데이터베이스의 경우 MongoDB Atlas를 사용할 수 있습니다. 이 최신 데이터베이스에 대한 계정이 이미 있는 경우 이 데이터베이스의 URL에 대한 환경 변수를 만들고 환경 변수를 사용하여 연결할 수 있습니다.
그러나 Python이 MongoDB Atlas와 원활하게 작동하려면 pymongo 패키지를 설치해야 합니다.
pip install pymongo
사용자 세션을 생성하고 저장하려면 Redis Enterprise 플랫폼으로 계정을 생성하고 Python용 Redis 패키지를 설치하여 Redis 데이터베이스를 사용할 수 있습니다.
pip install redis
한 가지 더, 사용자 인증을 위해 PyJWT 패키지를 설치하여 JWT(JSON Web Token)를 사용할 수 있습니다.
pip install PyJWT
모든 것이 설치되면 구성 파일을 생성하여 데이터베이스 연결을 구성하고 설정할 수 있습니다.
# config.py
# pip install python-dotenv
# pip install PyJWT
# pip install pymongo
# pip install redis
def settings():
setup = {
"siteTitle": "TV Channel",
"pageTitle": "",
}
return setup
import os
from dotenv import load_dotenv
load_dotenv()
secret_key = os.getenv("SECRET_KEY")
import pymongo
client = pymongo.MongoClient(os.getenv("DATABASE_URI"))
db = client[os.getenv("DB_NAME")]
import redis
redis = redis.Redis(
host = os.getenv("REDIS_URI"),
port = int(os.getenv("REDIS_PORT")),
password = os.getenv("REDIS_PASSWORD")
)
configure = {
"settings": settings,
"secret_key": secret_key,
"db": db,
"redis": redis,
}
# .env
SECRET_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
DATABASE_URI=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
DB_NAME=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
REDIS_URI=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
REDIS_PASSWORD=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
REDIS_PORT=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
다른 모듈에서 위 파일의 구성을 가져올 수 있습니다. 그러나 가장 좋은 방법은 기본 응용 프로그램 개체에 구성 개체를 저장하는 것입니다. 이렇게 하면 요청 개체를 통해 모든 모듈에서 이 구성을 사용할 수 있습니다.
# index.py
from bottle import static_file, get
from routes.frontend import index
import config
app = index.appIndex
app.config["myapp.config"] = config.configure
@app.get('/static/<filepath:path>')
def staticFile(filepath):
return static_file(filepath, root="public")
###################################################################
import socket
host = socket.getfqdn()
addr = socket.gethostbyname(host)
if(addr == '127.0.1.1'):
app.run(host='localhost', port=8000, debug=True, reloader=True)
###################################################################
# routes/frontend/index.py
from bottle import Bottle, template, get, request
from copy import deepcopy
appIndex = Bottle()
@appIndex.get('/')
def indexHandler():
config = request.app.config["myapp.config"]
settings = deepcopy(config["settings"])
setup = settings()
setup["message"] = "Hello World!"
return template('base', data=setup)
<!--views/base.tpl-->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>{{ data["siteTitle"] }}</title>
<script src="/static/scripts/jquery.js"></script>
<link href="/static/images/sitelogo.png" rel="icon" />
<link href="/static/fonts/setup.css" rel="stylesheet" />
<link href="/static/styles/base.css" rel="stylesheet" />
</head>
<body>
{{ data["message"] }}
</body>
</html>
Reference
이 문제에 관하여(TV 채널 웹사이트: 환경 변수 및 데이터베이스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/sokhavuth/tv-channel-website-environment-variable-database-4gd4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)