Веб-разработка на Python: используйте фреймворк Tornado для создания простого веб-сайта [стены признаний]

предисловие

Сегодня мы займемся веб-разработкой на Python и создадим простой веб-сайт [Стена исповеди]. Как мы все знаем, функция стены исповеди, как правило, больше связана с публикацией, чтобы найти кого-то, потерянного и найденного, или с платформой, где каждый может публично признаться со своими любимыми людьми.

Краткое введение в фреймворк Tornado

В Python есть три основных фреймворка WEB-разработки, и сегодня в основном используется фреймворк Tornado (хотя этот фреймворк — легковесный фреймворк, которым мало кто пользуется)

Установите код модуля фреймворка Tornado
pip install tornado

  • Джанго
  • Колба
  • Торнадо

Преимущества фреймворка Tornado

  • Микрофреймворк, высокая производительность
  • Асинхронная поддержка

Недостатки Tornado Framework

  • Меньше колес, в отличие от Django и других фреймворков, поддерживающих большое количество плагинов.
  • Отсутствие лучшего реального боя, компания мало использует, а учебных материалов мало.

Сценарии использования фреймворка Tornado

  • Создавайте микросервисы

Композиция кадра

Сначала попробуйте Торнадо

Сначала импортируйте модули, которые будут использоваться на этот раз.

import time
from tornado import web, ioloop, httpserver

Посмотреть

class MainPageHandler(web.RequestHandler):
    def get(self, *args, **kwargs):  # 对应get请求
        self.wrilt('hello tornado')

установить маршрут

app = web.Application(
    [
        (r"/", MainPageHandler),
    ]
)

"/" означает посещение домашней страницы, например, локальное доменное имя 127.0.0.1:8000/, что означает посещение этого веб-сайта, вы посетите домашнюю страницу

Установите интерфейсный сокет, вызовите

if __name__ == "__main__":
    # 前端socket
    http_server = httpserver.HTTPServer(app)
    http_server.listen(8000)
    ioloop.IOLoop.current().start()

Запустите программу и сначала протестируйте воду

Когда Tornado запускается, он не предложит вам запустить его, как Django и Flask.

Установите домашнюю страницу, вызовите шаблон файла внешнего интерфейса

# 首页
class MainPageHandler(web.RequestHandler):
    def get(self, *args, **kwargs):
        self.render('index.html', name='表白墙', messages=MESSAGES)

На этот раз фронтальный файл вызывается напрямую, а материалов на этом сайте еще много.

Сайт: https://www.17sucai.com/

настраивать

settings = {
    
    
    'template_path': 'templates',  # 设置模板文件路径
    'static_path': 'statics'  # 静态文件路径
}

вид на стену исповеди

class WishHandler(web.RequestHandler):
    def get(self, *args, **kwargs):  # 对应get请求
        self.render('wish.html',name='表白墙')

    def post(self, *args, **kwargs):
        # 获取前端传递数据
        content = self.get_argument('content', default=None)
        name = self.get_argument('name', default='匿名')
        if content:
            # 添加数据
            MESSAGES.append({
    
    
                'name': name,
                'content': content,
                'id': len(MESSAGES) + 1,
                'num': len(MESSAGES) + 1,
                'time': time.strftime('%Y-%m-%d %H:%M:%S')
            })
            # 跳转
            self.redirect('/')

        else:
            self.write('内容不能为空')

сообщение

# 留言保存在全局变量中
MESSAGES = [
    {
    
    'id': 1, 'name': '学员', 'time': '2022-02-10 21:16:00', 'content': '真帅', 'num': 1}
]

Запустите код, чтобы увидеть окончательный эффект

рекомендация

отblog.csdn.net/m0_48405781/article/details/123131101