Python WEB開発:Tornadoフレームワークを使用して、単純な[告白の壁]Webサイトを作成します

序文

今日はPythonでWeb開発を行い、[告白の壁]の簡単なWebサイトを作成します。誰もが知っているように、告白の壁の機能は、一般的に、誰かを見つけたり、失くしたり、見つけたりするために公開すること、または誰もがお気に入りの人と公に告白できるプラットフォームです。

Tornadoフレームワークの簡単な紹介

Pythonには、3つの主要なWEB開発フレームワークがあり、現在、Tornadoフレームワークが主に使用されています(ただし、このフレームワークは、ほとんどの人が使用しない軽量のフレームワークです)。

Tornadoフレームワークモジュールコードをインストールします
pipinstalltornado

  • Django
  • フラスコ
  • 竜巻

Tornadoフレームワークの利点

  • マイクロフレームワーク、高性能
  • 非同期サポート

Tornadoフレームワークの短所

  • 多数のプラグインをサポートする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/です。これは、このWebサイトにアクセスすることを意味し、ホームページにアクセスします。

フロントエンドソケットを設定し、

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)

今回はフロントエンドファイルが直接呼び出されますが、このWebサイトにはまだ多くの資料があります。

ウェブサイト: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