说什么也要脱单——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开发测试驱动方法>这本书
随机推荐
- Codeforces Round #707 (Div. 2)A.英语漏洞 + C.Going Home C题收获不小
A题英语漏洞 A题传送门: https://codeforces.com/contest/1501/problem/A 其实题目说的很明白, 只是我傻傻的会错了意, 话不多说, 开整. 前两行是说, ...
- 2021.11.09 P4824 [USACO15FEB]Censoring S与P3121 [USACO15FEB]Censoring G(KMP&&AC自动机)
2021.11.09 P4824 [USACO15FEB]Censoring S与P3121 [USACO15FEB]Censoring G(KMP&&AC自动机) https://w ...
- SQL Server 2019 异常服务没有及时响应启动或控制请求
安装到最后一步时发生了如下错误 解决办法: 1.使用管理员打开cmd窗口,输入以下命令 net localgroup administrators "NETWORK SERVICE" ...
- C#常见控件与SQL Sever数据库交互
C#常见控件与SQL Sever数据库交互 下拉框(ComboBox)与数据库绑定 首先,我们采用DataSet作为临时的数据库,这样会比较好 那么,我们先创建两个成员(对象) string sqlc ...
- Metalama简介4.使用Fabric操作项目或命名空间
使用基于Roslyn的编译时AOP框架来解决.NET项目的代码复用问题 Metalama简介1. 不止是一个.NET跨平台的编译时AOP框架 Metalama简介2.利用Aspect在编译时进行消除重 ...
- Python 查找算法_众里寻他千百度,蓦然回首那人却在灯火阑珊处(线性、二分,分块、插值查找算法)
查找算法是用来检索序列数据(群体)中是否存在给定的数据(关键字),常用查找算法有: 线性查找: 线性查找也称为顺序查找,用于在无序数列中查找. 二分查找: 二分查找也称为折半查找,其算法用于有序数列. ...
- 记一次MySQL数据迁移到SQLServer全过程
为什么要做迁移? 由于系统版本.数据库的升级,导致测试流程阻塞,为了保证数据及系统版本的一致性,我又迫切需要想用这套环境做性能测试,所以和领导.开发请示,得到批准后,便有了这次学习的机会,所以特此来记 ...
- Springboot中整合knife4j接口文档
在项目开发过程中,web项目的前后端分离开发,APP开发,需要由前端后端工程师共同定义接口,编写接口文档,之后大家都根据这个接口文档进行开发. 什么是knife4j 简单说knife4j就swagge ...
- 全场景AI推理引擎MindSpore Lite, 助力HMS Core视频编辑服务打造更智能的剪辑体验
移动互联网的发展给人们的社交和娱乐方式带来了很大的改变,以vlog.短视频等为代表的新兴文化样态正受到越来越多人的青睐.同时,随着AI智能.美颜修图等功能在图像视频编辑App中的应用,促使视频编辑效率 ...
- 利用VTK和PyQt5对医学体数据进行渲染并展示
简介 在一些医学相关的简单的项目(也许是学生的作业?毕业设计?)中,有时候可能需要集成一些可视化的功能,本文简单介绍一下,如何利用PyQt5和VTK来渲染体数据(三维数据),并集成进PyQt的UI框架 ...