Flask是一个基于python的轻量级web框架。当安装好后Flask后 (pip install flask),就可以开始使用了。

一、最简单的例子

1、新建目录,作为web应用的目录,如:

mkdir myapp

2、编写 hello.py文件,放在上面的myapp目录下

from flask import Flask
app = Flask(__name__) @app.route('/')
def hello_world():
return 'Hello World!' @app.route('/name')
def hello_name():
return 'my name is hello\n' if __name__ == '__main__':
app.run('0.0.0.0',80)

3、启动flask服务:python hello.py
这时提示

* Running on http://0.0.0.0:80/

然后在浏览器中就可以访问了,如:

http://192.168.142.138     //页面显示Hello World!

http://192.168.142.138/name   //页面显示 my name is hello

说明: 如果希望修改py文件后,不用再重启服务,可以加上 如下语句。注意这主要用来调试,不能用于生产环境。

app.debug = True

二、静态资源

可以在应用目录(如上面的myapp目录)下创建目录名为static的目录。

这样就可以把各种静态的资源(如 html, css, js,jpeg等)放在static目录下。

访问静态资源的方式如:

http://192.168.142.138/static/资源名称

三、使用模板

所谓模板,就是在一个html文件中可以加上一些标识,由web引擎传入一些动态信息(来自html请求和服务器的处理),替换html文件中的标记,这样html页面就可以动态变化。在flask中,这样使用模板。举例如下:

1、在应用目录(如上面的myapp目录)下创建目录名为templates的目录。

2、创建 index.html文件放入templates目录下,文件内容

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>test</title>
<link rel="stylesheet" href="/static/demo.css"/>
</head> <body>
<div> hello</div>
</body>
</html>

这个例子html文件中全是静态信息,没有动态信息。上面文件引用了demo.css文件,位于static目录下(见下面说明)。

3、创建一个demo.css文件,放入应用目录(如上面的myapp目录)下的static目录下。这些静态资源(主要是js,css,图片等)可以被模板文件引用。如上面的index.html文件。demo.css的内容如:

div{
border:1px solid red;
}

4、修改hello.py文件
在文件的前面引入render_template包,可以放在第2行,代码如:

from flask import render_template

增加路由代码

@app.route('/index/')
@app.route('/index/<name>')
def hello(name=None):
return render_template('index.html', name=name)

上面的代码 render_template('index.html', name=name)  ,其中render_template方法第一个参数是模板文件,第二个参数是传入到模板中的信息(对上面例子没有意义)。传到模板中的name值可以是来源于url的部分。当然也可以是hello函数中处理的结果。

5、请求
在浏览器输入如

http://192.168.142.138:32768/index

http://192.168.142.138:32768/index/xxx

都会定位到index.html文件

6、动态模板

修改index.html的文件如下:

<!doctype html>
<title>Hello from Flask</title>
{% if name %}
<h1>Hello {{ name }}!</h1>
{% else %}
<h1>Hello World!</h1>
{% endif %}

访问:http://192.168.142.138:32768/index/
输出信息为:Hello World!

访问:http://192.168.142.138:32768/index/test

输出信息为:Hello test!

Flask web开发 简单介绍的更多相关文章

  1. Flask web开发 请求拦截和预处理

    我们在开发WEB应用时,往往会需要对所有的url请求进行拦截,做些预处理,比如权限处理.日志等统一处理. 本文介绍一下Flask中的处理机制.我们通过一个简单的例子来说明. 1.编写一个简单应用 ru ...

  2. 《Flask Web开发——基于Python的Web应用开发实践》一字一句上机实践(上)

    目录 前言 第1章 安装 第2章 程序的基本结构 第3章 模板 第4章 Web表单 第5章 数据库 第6章 电子邮件 第7章 大型程序的结构   前言 学习Python也有一个半月时间了,学到现在感觉 ...

  3. 《Flask Web开发实战:入门、进阶与原理解析(李辉著 )》PDF+源代码

    一句话评价: 这可能是市面上(包括国外出版的)你能找到最好的讲Flask的书了 下载:链接: https://pan.baidu.com/s/1ioEfLc7Hc15jFpC-DmEYBA 提取码: ...

  4. Web Services简单介绍

    Web Services简单介绍 Web Services入门 一.Web Services简介 1.什么是Web Services? Web Services 是应用程序组件 Web Service ...

  5. 学习参考《Flask Web开发:基于Python的Web应用开发实战(第2版)》中文PDF+源代码

    在学习python Web开发时,我们会选择使用Django.flask等框架. 在学习flask时,推荐学习看看<Flask Web开发:基于Python的Web应用开发实战(第2版)> ...

  6. Flask web开发 处理Session

    本文我们在上篇文章<Flask web开发  处理POST请求(登录案例)>的基础上,来讲述Flask对session的支持. 在上面案例上,我们需要修改和新增如下功能 1.登录成功后的 ...

  7. Flask Web开发读书笔记

    开篇:目前想自学Flask Web开发--基于Python,找了几本书准备啃啃,同时也会分享读书笔记.希望和大家一起进步. Flask是小型框架,可以算是微框架,但是他的功能还是比较多 Flask有三 ...

  8. Flask Web开发从入门到放弃(一)

    第1章 章节一 01 内容概要 02 内容回顾 03 路飞学城之加入购物车 04 路飞学城之结算 05 路飞学城之立即支付 06 路飞学城之后续计划 07 Flask框架简介和快速使用 08 FLas ...

  9. [flask/python/web] 解析flask web开发(Miguel著)一书第11章主页不显示博文表单的问题

    ---------------------------------------------以下内容2017.7.14更新---------------------------------------- ...

随机推荐

  1. (IOS)悬浮按钮Demo

    思路:传入一个底层的view,将悬浮按钮(用view实现)和展开的子按钮列表add在其上,子按钮列表开始将坐标和悬浮按钮对应好后先将其隐藏,悬浮按钮识别到tap手势后触发展示子按钮列表的方法.通过在t ...

  2. Json.Net系列教程 4.Linq To JSON

    原文 Json.Net系列教程 4.Linq To JSON 更改历史 2013-05-31 添加一个FAQ   一.Linq to JSON是用来干什么的? Linq to JSON是用来操作JSO ...

  3. CI引入外部javascript和css

    假定baseurl 为 $config['base_url']='http://localhost/codeigniter/'; 调用 <link rel="stylesheet&qu ...

  4. 如何使用 Barracuda 防火墙设置/保护 Azure 应用程序

     如果某企业在 Windows Azure 上托管某个应用程序,该应用程序会在某个特定时间暴露到 Internet,以用于商业用途.公共 Internet 带来 客户的同时也带来了攻击者. Tim ...

  5. podoWeb极品流氓软件

    用firefox做页面网络性能测试, 打开网页就会发现页面不停的去请求googleapi.com上的jquery Or swfobject.js,页面就此卡住,一直在等待类似这两个请求的返回,知道Ab ...

  6. CERC 2013 Magical GCD

    题目大意如下:给定一个序列,每个序列有值xi,现给定t个数列,对于每个长n的数列,求一段[l,r]使 [r-l+1]*gcd(l,r)最大,gcd(l,r)指的是该连续区间的最大公约数. 不难想到n^ ...

  7. _WSAStartup@8,该符号在函数 _main 中被引用

    int WSAStartup( __in WORD wVersionRequested, __out LPWSADATA lpWSAData ); WSAStartup 格  式: int PASCA ...

  8. Airport(未解决。。。)

    Airport Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Sub ...

  9. TCP传输连接建立与释放详解

    一直以来有许多读者朋友对TCP的传输连接建立和释放过程不是很理解,而这又是几乎网络认证中必考的知识点,包括软考.CCNA\CCNP.H3CNA\H3CNE等,为此再把笔者年度巨作,广受好评的——< ...

  10. Andorid Binder进程间通信---Binder本地对象,实体对象,引用对象,代理对象的引用计数

    本文參考<Android系统源码情景分析>,作者罗升阳. 一.Binder库(libbinder)代码: ~/Android/frameworks/base/libs/binder --- ...