Python Tornado 实现个人博客(一)
程序员文章站
2022-06-22 23:08:26
前面:最近正好在带队学习Tornado后台实现,在后面也需要提交一些个人实现的小项目,所以在这里记录一下Blog的开发。一、pip tornado/pymongo命令行下载命令pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tornadopip install -i https://pypi.tuna.tsinghua.edu.cn/simple pymongo二、创建新项目:Personal Blog......
写在前面:最近正好在带队学习Tornado后台实现,在后面也需要提交一些个人实现的小项目,所以在这里记录一下个人Blog的开发,也便于队伍成员的学习。
第一次写教程,希望诸位大佬看到有什么不足的,或者是有什么不对的地方,评论一下。
Create: 2020.08.09
Finshed:2020.08.09
一、创建新项目:Personal Blog
使用Pycharm创建项目:Personal Blog
二、pip install tornado
下载 tornado,下载命令:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tornado
三、创建主文件
1.主运行文件 Main.py ----- 运行
2.静态文件路径 static ----- js、css、image…
3.静态文件路径 templates ----- html
四、简单的登录、登出实现
1.在 templates 创建 Login.html
<!--
{{}} 使用后端参数
{%%} 使用逻辑 for if ···
-->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Admin Login</title>
</head>
<body>
<form action="/login" method="post">
<p>Admin Login</p>
<label>
<input type="text" name="username"><br>
<input type="password" name="password"><br>
</label>
<label>{{tips}}</label>
<input type="submit" value="Login">
</form>
</body>
</html>
2.在 templates 创建 Admin.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Admin Center</title>
</head>
<body>
<p>Success Login</p>
</body>
</html>
3.Main.py
import os
from abc import ABC
"""
tornado 引用
"""
import tornado.web
import tornado.ioloop
import tornado.options
import tornado.httpserver
from tornado.options import define, options
"""
绑定端口: 8016
"""
define('port', default=8016, help='Please contact the administrator', type=int)
"""
各个Handler机制/方法
基础:
render 返回
redirect 重定向
cookie 网页cookie set_cookie('键', '值')
tips 传递给前端参数
"""
class LoginHandler(tornado.web.RequestHandler, ABC):
def get(self):
self.render('login.html', tips='')
def post(self):
user = self.get_argument('username')
pawd = self.get_argument('password')
if user == 'username' and pawd == '123456':
self.set_cookie('login', user+'/admin')
self.redirect('/admin')
elif user == '' or pawd == '':
self.render('login.html', tips='用户名和密码不得为空')
else:
self.render('login.html', tips='用户名或密码错误')
class AdminHandler(tornado.web.RequestHandler, ABC):
def get(self):
if self.get_cookie('login'):
self.render('admin.html')
else:
self.redirect('/login')
"""
基础绑定
"""
class Application(tornado.web.Application):
def __init__(self):
handlers = [('/login', LoginHandler), ('/admin', AdminHandler)]
settings = dict(
template_path=os.path.join(os.path.dirname(__file__), 'templates'),
static_path=os.path.join(os.path.dirname(__file__), 'static')
)
tornado.web.Application.__init__(self, handlers, **settings)
"""
主函数/出口
"""
if __name__ == '__main__':
tornado.options.parse_command_line()
http_sever = tornado.httpserver.HTTPServer(Application())
http_sever.listen(options.port)
tornado.ioloop.IOLoop.instance().start()
五、运行 测试
运行 Main.py,打开浏览器输入localhost或127.0.0.1 + :8016/login 测试吧!!!
本文地址:https://blog.csdn.net/weixin_44422493/article/details/107887506
上一篇: 荐 python常用简单模块(持续更新)
下一篇: 基于ROS系统的手部追踪器程序设计