序文
今日は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}
]