当前位置: 移动技术网 > IT编程>脚本编程>Python > Python Tornado 实现个人博客(一)

Python Tornado 实现个人博客(一)

2020年08月10日  | 移动技术网IT编程  | 我要评论
前面:最近正好在带队学习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

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网