欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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
Python Tornado 实现个人博客(一)

二、pip install tornado

下载 tornado,下载命令:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tornado

三、创建主文件

1.主运行文件 Main.py ----- 运行
Python Tornado 实现个人博客(一)
2.静态文件路径 static ----- js、css、image…
Python Tornado 实现个人博客(一)
3.静态文件路径 templates ----- html
Python Tornado 实现个人博客(一)

四、简单的登录、登出实现

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学习 python