0.Flask简单介绍
    Flask是一个用Python编写的轻量级的Web应用框架。本文第一部分将简单解说Flask的安装,接着展示一个Flask的样例,第一个样例非常easy但也存在缺陷——在Python代码中嵌入了HTML标签,为了解决这种缺陷第二个样例引入了模板,最后第三个样例在模板中增加了參数。
1.Flask安装
    安装Flask的方法有非常多。比如使用easy_install或pip。

可是再開始之前最好使用国内镜像,这样安装时等待的时间会短的非常多。很多其它内容请參考——python 扩展库安装 使用第三方镜像源

【使用easy_install安装】
(sudo) easy_install -i http://pypi.douban.com/simple/ flask
【使用pip安装】
(sudo) pip install -i http://pypi.douban.com/simple/ flask
2.一个简陋的例子
【网页源码】
<html>
<title>Flask Test</title>
<body>
<h2>Hello World</h2>
</body>
</html>
【终于效果】
图1 执行结果
【python代码】——文件名称为hello-flask.py
from flask import Flask
app= Flask(__name__)
@app.route('/')
def hello():
response = "<html>\n"
response += "<title>Flask Test</title>\n"
response += "<body>\n"
response += "<h2>Hello World\n</h2>"
response += "</body>\n"
response += "</html>\n"
return response if __name__ == '__main__':
app.run(host="0.0.0.0",port=8080, debug=True)
【怎样执行】
    假设是windows7系统,能够按住shift并在所在文件夹右击。选择“在此处打开命令窗体”,接着在控制台中输入 python hello-flask.py。
    若希望结束执行请在控制台中输入Ctrl+C。
【代码说明】
【1】from flask import Flask 
    引入flask框架。form flask中的flask必须小写代表文件名称,为improt Flask中的Flask必须大写代表类名。
【2】app= Flask(__name__)
    创建一个实例。

【3】@app.route('/')
    设置Flask路由。在上文的代码中,若Flask遇到"/"这种URL,那么就使用hello_world处理该请求。此处的@符号临时不深入讨论。
【4】app.run(host="0.0.0.0",port=8080, debug=True) 
    host="0.0.0.0"使得Flask能够处理来自随意IP的请求,port=8080指定端口为8080,建议在调试过程中不使用80端口除非你有十足的把握。

【为什么说这个样例丑陋】
    从上面的代码能够看出,在python代码中插入了非常多HTML标签,比如body h2等,这种代码容易产生混乱而且难以维护。

假设使用渲染模板便可非常好的解决该问题。

3.利用模板
    模板和原始的HTML文件非常的类似,仅仅是在原始HTML中多些占位符,Flask框架中使用Jinja2作为模板引擎,而Jinja2的占位符为{{ }}。

当使用render_template方法渲染一个模板时,Jinja2便把占位符使用指定的变量替代并形成html文件,最后Flask把该html文件传输给浏览器。

    为了利用模板。在hello-flask.py同文件夹中新建一个templates文件夹。在文件夹中新建一个hello.html文件。

【HTML文件】
<html>
<head>
<title>Flask Test</title>
</head>
<body>
<h2>Hello World</h2>
</body>
</html><span style="background-color: inherit; font-family: Tahoma;">  </span>
【python代码】
from flask import Flask,render_template
app= Flask(__name__)
@app.route('/')
def hello():
return render_template("hello.html") if __name__ == '__main__':
app.run(host="0.0.0.0",port=8080, debug=True)
【代码说明】
【1】from flask import Flask,render_template

引入render_template方法

【2】render_template("hello.html") 
    渲染hello.html文件。注意此处没有代入不论什么參数。
4.更复杂的样例
    让我们再来做一个复杂一些的样例,定义这样一个RESTful风格URL。

    /hello/name    网页显示hello name。
    /hello/           网页显示hello 某默认结果(此处暂且定义为xukai871105吧)。

【终于效果】
图2 执行结果
图3 执行结果
【html文件】
<html>
<head>
<title>Flask Test</title>
</head>
<body>
<h2>Hello {{name}}</h2>
</body>
</html>
【python代码】
from flask import Flask,render_template
app= Flask(__name__)
@app.route('/hello/')
@app.route('/hello/<name>')
def hello(name=None):
if name == None:
name = "xukai871105"
templateDate = {'name' : name};
return render_template("hello.html", **templateDate);
if __name__ == '__main__':
app.run(host="0.0.0.0",port=8080, debug=True)
【代码说明】
【1】hello函数处理两个URL,分别为/hello/和hello/<name>
【2】templateDate定义一个python字典,该字典仅仅有一个键值对。name:xukai。请注意此处的'name'为键名称,而name为键详细值此处为一个变量。

python中的字典和javascript中的JSON非常类似,假设在javascript中能够写成{name:name}。前一个name为键名称,后一个name为键详细值,javascript把引號都省略了。

【3】**templateDate表示随意个数且有名称的參数,该參数适用字典来訪问。在这里也能够写成,render_template("hello.html", name=name);假设这样描写叙述那么第一个那么代表键名称,第二个那么代表键详细值,此处name为hello函数的形參。
5.參考资料

python Flask 学前班的更多相关文章

  1. python Flask JQuery使用说明

    0.前言     近期因为某种原因再次学习Flask框架.借助博客整理相关内容.Flask框架和Apache+PHP存在少许不同,Flask框架中JS和CSS文件存放于一个相对固定的位置. 普通情况下 ...

  2. AFNetworking+Python+Flask+pyOpenSSL构建iOS HTTPS客户端&服务器端

    对于HTTPS我在网上找了一堆资料看了下, 各种协议和证书已经有点晕了 最后我现有的感觉是, 在HTTP服务器上放一个证书, 在原本的HTTP访问之前客户端先检查证书是否正确 如果客户端证书检查正确, ...

  3. python flask detect browser language

    python flask detect browser language   No problem. We won't show you that ad again. Why didn't you l ...

  4. Error generating Swagger server (Python Flask) from Swagger editor

    1down votefavorite   http://stackoverflow.com/questions/36416679/error-generating-swagger-server-pyt ...

  5. windows下python+flask环境配置详细图文教程

    本帖是本人在安装配置python和flask环境时所用到的资源下载及相关的教程进行了整理罗列,来方便后面的人员,省去搜索的时间.如果你在安装配置是存在问题可留言给我. 首先罗列一下python+fla ...

  6. [Python][flask][flask-login]关于flask-login中各种API使用实例

    本篇博文跟上一篇[Python][flask][flask-wtf]关于flask-wtf中API使用实例教程有莫大的关系. 简介:Flask-Login 为 Flask 提供了用户会话管理.它处理了 ...

  7. python+flask+mongodb+whoosh实现自己的搜索引擎(一):目录

    python+flask+jieba+mongodb+whoosh实现自己的搜索引擎 一.目录 二.基于python的爬虫 三.网页去燥,URL去重 四.基于mongodb的数据存储 五.基于whoo ...

  8. 使用wfastcgi在IIS上部署Python Flask应用

    本文介绍了如何在Windows上部署Python Flask应用,相关环境如下: 操作系统:windows 7 Python:3.4 WFastCGI: 2.2 应用所用到的包版本如下: Flask= ...

  9. 使用python+flask让你自己api(教程源代码)

    1.背景 ok,这可能是很多朋友和我一样经常使用的各种api,例facebook的.github的.甚至微信api.因此,很多人都想使自己的api.在线教程在这方面它是非常小的,今天,我做了一个平稳, ...

随机推荐

  1. VUE:计算属性和监视

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  2. 【hdu 6319】Ascending Rating

    [链接] 我是链接,点我呀:) [题意] 给你一个长为n的数组a 让你对于每个长度为m的窗口. 算出其中的最大值以及从左往右遍历的时候这个最大值更新的次数. [题解] 单调队列. 从后往前滑动窗口. ...

  3. 一个通用Makefile的编写

    作者:杨老师,华清远见嵌入式学院讲师. 我们在Linux环境下开发程序,少不了要自己编写Makefile,一个稍微大一些的工程下面都会包含很多.c的源文件.如果我们用gcc去一个一个编译每一个源文件的 ...

  4. Oracle在更改机器名后服务无法启动的解决方法

    Oracle改变机器名后会导致服务无法正常启动,能够通过下列操作解决: 1.oracle\product\10.2.0\db_3\network\ADMIN文件夹下,listener.ora文件里的L ...

  5. Oracle 后台进程介绍

    一 进程分类: 1.服务器进程(server process): 依据客户请求完毕工作.如接收和处理应用发送的SQL语句 2.后台进程(background process): 随数据库而启动,用于完 ...

  6. android sudio 执行的中文是乱码解决方式

    1.File-->Setings-->查找file encodings 例如以下图 2.将 IDE Encoding .Project Encoding.Default encoding ...

  7. node17

    一.复习 cookie是在res中设置,req中读取的.第一次的访问没有cookie. cookie的存储大小有限,kv对.对用户可见,用户可以禁用.清除Cookie.可以被篡改. cookie用来制 ...

  8. bzoj3262: 陌上花开(cdq分治+树状数组)

    3262: 陌上花开 题目:传送门 题解: %%%cdq分治 很强大的一个暴力...感觉比分块高级多了 这道题目就是一个十分经典的三维偏序的例题: 一维直接暴力排序x 二维用csq维护y 三维用树状数 ...

  9. ES什么时候会平衡分片

    "cluster.routing.allocation.balance.shard":"0.45f",//定义分配在该节点的分片数的因子 阈值=因子*(当前节点 ...

  10. hdoj--3592--World Exhibition(差分约束)

    World Exhibition Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...