说什么也要脱单——Python WEB开发:用Tornado框架制作简易【表白墙】网站
先来哔哔两句:(https://jq.qq.com/?_wv=1027&k=QgGWqAVF)
今天我们要用Python做Web开发,做一个简单的【表白墙】网站。众所周知表白墙的功能普遍更多的是发布找人,失物招领,还是一个大家可以跟自己喜欢的人公开表白的平台。
再加上520快到了鸭兄弟们!
这次说什么也要脱单!
Tornado框架简单介绍 (https://jq.qq.com/?_wv=1027&k=QgGWqAVF)
在Python当中,WEB开发框架主要有三个,而今天主要是用到Tornado框架(虽然这个框架是没什么人用的轻量级框架)
安装Tornado框架模块代码
pip install tornado
- Django
- Flask
- Tornado
Tornado框架优势 (https://jq.qq.com/?_wv=1027&k=QgGWqAVF)
- 微框架,高性能
- 异步支持
Tornado框架缺点 (https://jq.qq.com/?_wv=1027&k=QgGWqAVF)
- 轮子少,不像Django等框架大量的插件支持
- 缺少最佳实战,公司使用不多,学习资料少
Tornado框架使用场景 (https://jq.qq.com/?_wv=1027&k=QgGWqAVF)
- 构建微服务
框架的组成 (https://jq.qq.com/?_wv=1027&k=QgGWqAVF)
开始先试下Tornado
先导入本次要用的模块
python学习交流群:660193417###
import time
from tornado import web, ioloop, httpserver
视图
python学习交流群:660193417###
class MainPageHandler(web.RequestHandler):
def get(self, *args, **kwargs): # 对应get请求
self.wrilt('hello tornado')
设置路由
python学习交流群:660193417###
app = web.Application(
[
(r"/", MainPageHandler),
]
)
“/”代表着访问首页,比如本地的域名是127.0.0.1:8000/,代表访问这个网址,就会访问到首页
设置前端socket,调用
python学习交流群:660193417###
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' # 静态文件路径
}
表白墙视图 (https://jq.qq.com/?_wv=1027&k=QgGWqAVF)
python学习交流群:660193417###
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}
]
运行代码,查看最后效果
说什么也要脱单——Python WEB开发:用Tornado框架制作简易【表白墙】网站的更多相关文章
- Python Web 开发的十个框架【转载】
Python 是一门动态.面向对象语言.其最初就是作为一门面向对象语言设计的,并且在后期又加入了一些更高级的特性.除了语言本身的设计目的之外,Python标准 库也是值得大家称赞的,Python甚至还 ...
- Python Web开发:使用Django框架创建HolleWorld项目
开发环境搭建 Python环境安装 下载地址:https://www.python.org/downloads// Django安装 打开Windows CMD输入pip install django ...
- python web开发——c2 flask框架和flask_script
重定向/error 通过flask中的redirect方法和自定义的newpath函数.redirect_demo函数实现重定向: #coding:utf-8 from flask import Fl ...
- Python Web开发:Django+BootStrap实现简单的博客项目
创建blog的项目结构 关于如何创建一个Django项目,请查看[Python Web开发:使用Django框架创建HolleWorld项目] 创建blog的数据模型 创建一个文章类 所有开发都是数据 ...
- Redis的Python实践,以及四中常用应用场景详解——学习董伟明老师的《Python Web开发实践》
首先,简单介绍:Redis是一个基于内存的键值对存储系统,常用作数据库.缓存和消息代理. 支持:字符串,字典,列表,集合,有序集合,位图(bitmaps),地理位置,HyperLogLog等多种数据结 ...
- windows下python web开发环境的搭建
windows下python web开发环境: python2.7,django1.5.1,eclipse4.3.2,pydev3.4.1 一. python环境安装 https://www.pyth ...
- Java Web开发和Python Web开发之间的区别
今天的文章讨论了Java Web开发和Python Web开发之间的区别.我不鼓励我们在这里从Java Web迁移到Python Web开发.我只是想谈谈我的感受.它不一定适合所有情况,仅供我们参考. ...
- Python Web开发中的WSGI协议简介
在Python Web开发中,我们一般使用Flask.Django等web框架来开发应用程序,生产环境中将应用部署到Apache.Nginx等web服务器时,还需要uWSGI或者Gunicorn.一个 ...
- 关于测试驱动的开发模式以及实战部分,建议看《Python Web开发测试驱动方法》这本书
关于测试驱动的开发模式以及实战部分,建议看<Python Web开发测试驱动方法>这本书
随机推荐
- 移动安卓App+BurpSuite的渗透测试
从Android 7.0及以上版本开始,安卓系统更改了信任用户安装证书的默认行为,用户安装的证书都是用户证书,因此不管是filddle还是burp,都是把他们的根证书安装到了用户证书,而有部分移动ap ...
- flutter常用命令--不定期更新
// 更新flutter flutter upgrade // Dart 构造函数默认值 ImageGridView({Key key, this.imgs, this.isEdit: false}) ...
- android软件简约记账app开发day09-主页面模块,收支记账信息的展示
android软件简约记账app开发day09-主页面模块,收支记账信息的展示 我们第一天已经绘制了记账条目的界面,也在主界面设置了LietView来展示记账条目,今天来实现记账后再主界面的展示效果 ...
- Java语言学习day11--7月10日
今日内容介绍1.自定义类型的定义及使用2.自定义类的内存图3.ArrayList集合的基本功能4.随机点名器案例及库存案例代码优化 ###01引用数据类型_类 * A: 数据类型 * a: java中 ...
- UI自动化滑动登录
一.使用OpenCV图像识别函数 1 import time 2 import cv2 3 import requests 4 from selenium import webdriver 5 fro ...
- 【笔记】PyTorch快速入门:基础部分合集
PyTorch快速入门 Tensors Tensors贯穿PyTorch始终 和多维数组很相似,一个特点是可以硬件加速 Tensors的初始化 有很多方式 直接给值 data = [[1,2],[3, ...
- 如何对用户的绑定的身份证真实性进行实名认证(java)
现在随着对用户实名制的要求,因此用户提交的身份证信息经查需要检查是否为真实信息,我们需要对用户提交的身份证信息进行核验,具体操作步骤如下: 第一步 到认证平台注册账号:云亿互通--实名认证服务 (yu ...
- 解决:Could not resolve dependencies for project xxx: Could not find artifact xxx
引言 运行A module,找不到B module的依赖报错.A.B module都在project中. 报错信息 [INFO] Scanning for projects... [INFO] [IN ...
- ceph日常运维管理
点击关注上方"开源Linux", 后台回复"读书",有我为您特别筛选书籍资料~ 相关阅读: ceph分布式存储简介 常见问题 nearfull osd(s) o ...
- ShardingSphere 集成 CosId 实战
背景 在软件系统演进过程中,随着业务规模的增长 (TPS/存储容量),我们需要通过集群化部署来分摊计算.存储压力. 应用服务的无状态设计使其具备了伸缩性.在使用 Kubernetes 部署时我们只需要 ...