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. 【codeforces 794B】Cutting Carrot

    [题目链接]:http://codeforces.com/contest/794/problem/B [题意] 给你一个等腰三角形; 它的底边为1; 高为h; 要求你把这个等腰三角形分成n份面积相等的 ...

  2. [terry笔记]GoldenGate_迁移同步_主库零停机

    ogg根据scn同步数据,源库零停机时间 本次实验与上次的区别:更加注重细节,几乎包含所有步骤,把我越到的坑都作出了说明.并且同步是由10g向11g进行同步,更加符合升级迁移需求. 如下是主要步骤: ...

  3. Ubuntu 安装wps-office

    本系列文章由 @YhL_Leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/50288483 本人的ubuntu系统是 ...

  4. pcapy-0.10.8 安装

    (1)下载 http://corelabs.coresecurity.com/index.php?module=Wiki&action=view&type=tool&name= ...

  5. HDU 3240

    求卡特兰数前N项的和模M. 直接求必定是不可能的,卡特兰数太大了.想了好久,本打算把位数拆成素数相乘,然后记录下各素数的个数计算.可惜,TLE....因为N太大了. 除法必定是要用到逆元的,但分母与M ...

  6. freeradius 启动报错Refusing to start with libssl version OpenSSL 1.0.1

    改动etc/raddb下的radiusd.conf文件 找到allow_vulnerable_openssl = no,改动成allow_vulnerable_openssl = yes

  7. 数据仓库工具:Hive

    转载请标明出处: http://blog.csdn.net/zwto1/article/details/46430823: 本文出自:[明月的博客] 为什么要选择Hive 基于Hadoop的大数据的计 ...

  8. caffe环境配置2

    参考链接: http://blog.csdn.net/enjoyyl/article/details/47397505 http://blog.csdn.net/baobei0112/article/ ...

  9. hdoj--1016--Prime Ring Problem(递归回溯)

    Prime Ring Problem                                                                             Time ...

  10. [JZOJ 5906] [NOIP2018模拟10.15] 传送门 解题报告(树形DP)

    题目链接: https://jzoj.net/senior/#contest/show/2528/2 题目: 8102年,Normalgod在GLaDOS的帮助下,研制出了传送枪.但GLaDOS想把传 ...