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. ASP.NET-HTTP管道模型

    HTTP管道模型处理WEB程序很小的一方面.管道模型是类似于Web Services的一种在服务器端处理ASP.NET页面的框架技术 一.管道对象模型 在System.Web的命名空间中处理HTTP的 ...

  2. SQL SERVER-安装和卸载

    卸载后无法正常安装SQL SERVER 删除了本机的SQL SERVER以后,我发现我本机的SQL SERVER 再也安装不上了,这个一个比较严重的问题,要每天定时备份数据库到指定的地方才能防止数据丢 ...

  3. 洛谷 P1490 买蛋糕

    P1490 买蛋糕 题目描述 野猫过生日,大家当然会送礼物了(咳咳,没送礼物的同志注意了哈!!),由于不知道送什么好,又考虑到实用性等其他问题,大家决定合伙给野猫买一个生日蛋糕.大家不知道最后要买的蛋 ...

  4. 洛谷 P2243 电路维修

    P2243 电路维修 题目背景 Elf 是来自Gliese 星球的少女,由于偶然的原因漂流到了地球上.在她无依无靠的时候,善良的运输队员Mark 和James 收留了她.Elf 很感谢Mark和Jam ...

  5. java string遇到的一个奇葩bug

    String abc = "1"; HashMap<String, String> hMap = new HashMap<String, String>() ...

  6. 各种List、Map、Set的比較

    前言:Java中用不同的数据结构(哈希表/动态数组/平衡树/链表)实现了不同的集合接口(List/Map/Set).大多数情况下,集合类被用于不须要线程安全地环境,所以后来的集合实现都没有再採用同步以 ...

  7. 【动态树问题】LCT学习笔记

    我居然还不会LCT QAQ真是太弱了 必须学LCT QAQ ------------------线割分是我www------------ LinkCut-Tree是基于Splay(由于Splay能够非 ...

  8. UI自动化

    1.下载安装JDK,配置环境变量 2.下载eclips,并安装 3.下载jskuli截图工具,并安装 4.下载Jspec插件,将其放在eclipse路径下的\plugins文件夹中.(打开eclips ...

  9. Codeforces Round #252 (Div. 2)-C,D

    C题就是一个简单的模拟.首先给每一个人两个.然后把剩下的都给一个人就好了. 给的时候蛇形给. #include<stdio.h> #include<string.h> #inc ...

  10. IOS 数据存储之 SQLite具体解释

    在IOS开发中常常会须要存储数据,对于比較少量的数据能够採取文件的形式存储,比方使用plist文件.归档等,可是对于大量的数据,就须要使用数据库,在IOS开发中数据库存储能够直接通过SQL訪问数据库, ...