TV 채널 웹사이트: 로그인 페이지 구축
베르셀: https://khmerweb-tv-channel.vercel.app/login
지금까지는 빈 홈페이지만 있고 이 페이지에 올릴 내용이 없습니다. 따라서 이 페이지를 채우는 게시물을 작성하려면 관리자 페이지 또는 대시보드를 구축해야 합니다. 그러나 대시보드는 제한된 영역이므로 사용자를 인증하기 위해 로그인 페이지를 먼저 구축해야 이 영역에 들어갈 수 있습니다.
웹 프로그래밍에서 MVC(Models, Views, Controllers) 패턴은 웹 개발자가 가장 많이 채택합니다. 웹 애플리케이션의 경우에도 이 패턴을 따를 수 있습니다.
우리는 처음부터 이미 views 폴더를 만들었으므로 MVC 패턴을 따르기 위해 컨트롤러와 모델 폴더만 추가하면 됩니다.
또한 로그인 메커니즘을 별도의 애플리케이션으로 코딩하거나 진입점 index.py 파일에서 기본 애플리케이션과 함께 마운트할 청사진으로 코딩할 수 있습니다.
# index.py
from bottle import static_file, get
from routes.frontend import index
from routes.frontend import login
app = index.app
app.mount('/login', login.app)
@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/login.py
from bottle import Bottle, get, post
from controllers.frontend.login import Login
app = Bottle()
login = Login()
@app.get("/")
def getLogin():
return login.getPage()
# controllers/frontend/login.py
import config, copy
from bottle import template
class Login:
def __init__(self):
settings = copy.deepcopy(config.settings)
self.setup = settings()
def getPage(self):
self.setup["pageTitle"] = "Log into Admin Page"
self.setup["route"] = "/login"
return template("base", data=self.setup)
<!--views/frontend/login.tpl-->
<link rel="stylesheet" href="/static/styles/frontend/login.css" />
<section class="Login">
<div class="outer region">
<div class="title">{{ data["pageTitle"] }}</div>
<form action="/login" method="post">
<a>Email:</a><input type="email" name="email" />
<a>Password:</a><input type="password" name="password" />
<a></a><input type="submit" value="Submit" />
<a></a><div class="message">{{ data["message"] }}</div>
</form>
</div>
</section>
<!--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"] }} | {{ data["pageTitle"] }}</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>
<%
if(data["route"] == "/login"):
include('./frontend/login.tpl')
end
%>
</body>
</html>
/* public/styles/frontend/login.css */
.Login .outer{
margin-top: 100px;
width: 400px;
background-color: var(--background);
}
.Login .outer .title{
text-align: center;
border-bottom: 1px solid var(--background-light);
font: 25px/1.5 BlackOpsOne;
}
.Login .outer form{
display: grid;
grid-template-columns: 20% auto;
grid-gap: 5px;
padding: 20px;
align-items: center;
}
.Login .outer form input{
font: var(--body-font);
padding: 1px 5px;
}
.Login .outer form a{
text-align: right;
color: white;
}
.Login .outer form .message{
text-align: center;
}
Reference
이 문제에 관하여(TV 채널 웹사이트: 로그인 페이지 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/sokhavuth/tv-channel-website-building-login-page-3694텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)