Flask从入门到放弃1:路由app.route()
Flask从入门到放弃1:
Flask中的路由app.route():
参考来源:http://python.jobbole.com/80956/
https://www.raspberrypi.org/learning/python-web-server-with-flask/worksheet/
Flask是基于Werkzeug,Python WSGI实用程序库和Jinja2(Python的模板引擎)的微型框架。
比如:
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
要理解它,先了解一下装饰器:
举个例子:
# This is our decorator
def simple_decorator(f):
# This is the new function we're going to return
# This function will be used in place of our original definition
def wrapper():
print "Entering Function"
f()
print "Exited Function"
return wrapper
@simple_decorator
def hello():
print "Hello World"
hello()
运行上述代码会输出以下结果:
Entering Function
Hello World
Exited Function
上面是不接受传参的装饰器例子,下面演示一下传参的:
def decorator_factory(enter_message, exit_message):
# We're going to return this decorator
def simple_decorator(f):
def wrapper():
print enter_message
f()
print exit_message
return wrapper
return simple_decorator
@decorator_factory("Start", "End")
def hello():
print "Hello World"
hello()
给我们的输出是:
Start
Hello World
End
重新看一下前面的函数
@app.route("/"):
表示传递一个网站,“/”是网站的主目录,也就是http://127.0.0.1:5000/
假如把"/"改成:'/simon',那么就在网页上输入http://127.0.0.1:5000/simon
形参的规则可以用指定的转换器,比如下面的例子:
@app.route('/post/<int:post_id>')
def show_post(post_id):# show the post with the given id, the id is an integerreturn 'Post %d' % post_id
转换器有下面几种:
int:
接受整数
float:
同 int ,但是接受浮点数
path:
和默认的相似,但也接受斜线
def hello():
这个是传输给route的函数,里面返回值“Hello World!”就是显示到网页上的内容
假如需要显示html文件:
编写一个html文件,命名为index.html,比如:
<html>
<body>
<h2>Hello World</h2>
</body>
</html>
然后将return返回改成:
return render_template('index.html')
当然,在这之前要先导入 render_template模块
假如要导入CSS样式,编辑CSS文件,比如style.css:
body {
background: red;color: yellow;}
上述的html也做改动:
<html>
<head>
<link rel="stylesheet" href='/static/style.css' />
</head>
<body>
<h2>Hello World</h2>
</body>
</html>
整个项目的结构如下:
├── app.py
├── static
│ └── style.css
└── templates
└── index.html
我们还可以把导入模板,Flask使用jinja模板
@app.route('/hello/<name>')
def hello(name):
return render_template('page.html', name=name)
最后的return返回一个叫page.html的文件并传递形参name,name正是在URL的一部分数据
新建一个文件叫page.html
<h1>Hello {{ name }}!</h1>
这里我们忽略html的其他结构
网址输入:http://127.0.0.1:5000/hello/paul
我们就可以看到Hello paul的字样
Flask从入门到放弃1:路由app.route()的更多相关文章
- Flask系列03--Flask的路由 app.route中的参数, 动态参数路由
Flask–路由 添加路由的两种方式 第一种 @app.route("/my_de") def detail() 第二种(了解即可) app.add_url_rule(" ...
- 【转】Flask快速入门
迫不及待要开始了吗?本页提供了一个很好的 Flask 介绍,并假定你已经安装好了 Flask.如果没有,请跳转到 安装 章节. 一个最小的应用 一个最小的 Flask 应用看起来会是这样: from ...
- FLASK简单入门
假定你已经安装好了 Flask.如果没有,请跳转到 安装 章节. 一个最小的应用¶ 一个最小的 Flask 应用看起来会是这样: from flask import Flask app = Flask ...
- Flask框架入门
Flask-基本入门 简介 flask被称为微型框架,只提供了一个强健的核心,其他功能全部通过扩展库来实现:也就是说可以根据项目需要量身打造.他适合入门学习以及高手研究. 组成:WSGI.模板引擎(J ...
- Flask 快速入门
最简单的flask程序 from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return ...
- Flask从入门到精通之flask程序入门
初始化 所有Flask程序都必须创建一个程序实例,Web服务器使用一种名为Web服务器网关接口的的协议(WSGI),把接收自客户端的所有请求转发给这个对象处理.程序实例是Flask类的对象,使用下面代 ...
- 二 Flask快速入门
1: 外部可访问的服务器: 如果你运行了这个服务器,你会发现它只能从你自己的计算机上访问,网络中其它任何的地方都不能访问.在调试模式下,用户可以在你的计算机上执行任意 Python 代码.因此,这个行 ...
- Flask框架入门(一)
Flask诞生于2010年,是Armin ronacher(人名)用 Python 语言基于 Werkzeug 工具箱编写的轻量级Web开发框架. Flask 本身相当于一个内核,其他几乎所有的功能都 ...
- Flask官方文档学习-flask快速入门
环境搭建 下载安装Python3:www.python.org 终端运行命令:python3 -m venv flask_dev,来创建虚拟环境 启用虚拟环境,终端使用命令 source /flask ...
随机推荐
- “Hello World!”团队——Alpha发布用户使用报告
博客内容: 1.用户体验报告表 2.用户评论截图 3.总结 一.用户体验报告表 用户使用报告 用户序号 用户姓名(化名) 性别 用户职业 使用频次 用户评论 1 小董 女 文学在读硕士 5 1.游戏界 ...
- spring框架(1)— 依赖注入
依赖注入 spring核心容器就是一个超级大工厂,所以的对象(数据源.hibernate SessionFactory等基础性资源)都会被当做spring核心容器的管理对象——spring把容器中的一 ...
- .mat转成.npy文件+Python(Pytorch)压缩裁剪图片
需求:现有数据文件V1.mat,里面包含多个数据集,现需将里面的images数据集提取出来,然后进行压缩裁剪成指定大小 V1.mat数据集目录: 1.从mat文件中提取数据(使用Python) V1. ...
- lintcode-36-翻转链表 II
36-翻转链表 II 翻转链表中第m个节点到第n个节点的部分 注意事项 m,n满足1 ≤ m ≤ n ≤ 链表长度 样例 给出链表1->2->3->4->5->null, ...
- LintCode-71.二叉树的锯齿形层次遍历
二叉树的锯齿形层次遍历 给出一棵二叉树,返回其节点值的锯齿形层次遍历(先从左往右,下一层再从右往左,层与层之间交替进行) 样例 给出一棵二叉树 {3,9,20,#,#,15,7}, 返回其锯齿形的层次 ...
- 修改CSV中的某些值
file.csv文件如下,然后对其中某些值进行变换操作,刚学Powershell的时候操作起来很麻烦,现在看来其实就是对于哈希表的操作. col1,col2,col3,col4 text1,text2 ...
- phpcms添加自定义字段
设置 :后台 --- 内容 ---- 模型管理 ---- 对应的模型 --- 字段管理 新增加自定义字段:phpcms123 调用新增字段代码: {pc:content action=&qu ...
- Python2爬虫获取的数据存储到MySQL中时报错"Incorrect string value: '\\xE6\\x96\\xB0\\xE9\\x97\\xBB' for column 'new' at row 1"的解决办法
由于一直使用python3进行编码,在使用Python2时,将爬虫数据连接数据库进行存储时,出现如上的报错,经查资料 是数据库编码问题. 如下转自:http://www.cnblogs.com/liu ...
- c++ int 负数 补码 隐式类型转换
unsigned y = ; ; cout << x + y << endl; 对于上述的结果为 这里面有一个负数的补码问题和不同类型之间的隐式类型转换问题 首先负数的表示方法 ...
- Python面向对象—类属性和实例属性
属性:就是属于一个对象的数据或函数元素 类有类方法.实例方法.静态方法.类数据属性(类变量)和实例数据属性(实例变量). 类属性:包括类方法和类变量,可以通过类或实例来访问,只能通过类来修改. 实例属 ...