prefacio
Hoy vamos a hacer un desarrollo web con Python y crear un sitio web simple de [Confession Wall]. Como todos sabemos, la función del muro de confesiones generalmente se trata más de publicar para encontrar a alguien, perdido y encontrado, o una plataforma donde todos puedan confesarse públicamente con sus personas favoritas.
Una breve introducción al marco Tornado
En Python, hay tres marcos principales de desarrollo WEB, y hoy en día se usa principalmente el marco Tornado (aunque este marco es un marco liviano que pocas personas usan)
Instale el código del módulo del marco Tornado
pip install tornado
- Django
- Matraz
- Tornado
Ventajas del Marco Tornado
- Micromarco, alto rendimiento
- Soporte asíncrono
Desventajas del Tornado Framework
- Menos ruedas, a diferencia de Django y otros marcos que admiten una gran cantidad de complementos.
- Falta el mejor combate real, la empresa no usa mucho y los materiales de aprendizaje son pocos.
Escenarios de uso del marco Tornado
- Crear microservicios
La composición del cuadro.
Prueba Tornado primero
Primero importe los módulos que se utilizarán esta vez
import time
from tornado import web, ioloop, httpserver
vista
class MainPageHandler(web.RequestHandler):
def get(self, *args, **kwargs): # 对应get请求
self.wrilt('hello tornado')
establecer ruta
app = web.Application(
[
(r"/", MainPageHandler),
]
)
"/" significa visitar la página de inicio, por ejemplo, el nombre de dominio local es 127.0.0.1:8000/, lo que significa que al visitar este sitio web, visitará la página de inicio
Configure el zócalo frontal, llame
if __name__ == "__main__":
# 前端socket
http_server = httpserver.HTTPServer(app)
http_server.listen(8000)
ioloop.IOLoop.current().start()
Ejecute el programa y pruebe el agua primero
Cuando se inicia Tornado, no le pedirá que lo inicie como Django y Flask
Configure la página de inicio, llame a la plantilla de archivo front-end
# 首页
class MainPageHandler(web.RequestHandler):
def get(self, *args, **kwargs):
self.render('index.html', name='表白墙', messages=MESSAGES)
Esta vez, el archivo front-end se llama directamente y todavía hay muchos materiales en este sitio web.
Sitio web: https://www.17sucai.com/
configurar
settings = {
'template_path': 'templates', # 设置模板文件路径
'static_path': 'statics' # 静态文件路径
}
vista de la pared de la confesión
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('内容不能为空')
mensaje
# 留言保存在全局变量中
MESSAGES = [
{
'id': 1, 'name': '学员', 'time': '2022-02-10 21:16:00', 'content': '真帅', 'num': 1}
]