Flask web开发 简单介绍
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开发 简单介绍的更多相关文章
- Flask web开发 请求拦截和预处理
我们在开发WEB应用时,往往会需要对所有的url请求进行拦截,做些预处理,比如权限处理.日志等统一处理. 本文介绍一下Flask中的处理机制.我们通过一个简单的例子来说明. 1.编写一个简单应用 ru ...
- 《Flask Web开发——基于Python的Web应用开发实践》一字一句上机实践(上)
目录 前言 第1章 安装 第2章 程序的基本结构 第3章 模板 第4章 Web表单 第5章 数据库 第6章 电子邮件 第7章 大型程序的结构 前言 学习Python也有一个半月时间了,学到现在感觉 ...
- 《Flask Web开发实战:入门、进阶与原理解析(李辉著 )》PDF+源代码
一句话评价: 这可能是市面上(包括国外出版的)你能找到最好的讲Flask的书了 下载:链接: https://pan.baidu.com/s/1ioEfLc7Hc15jFpC-DmEYBA 提取码: ...
- Web Services简单介绍
Web Services简单介绍 Web Services入门 一.Web Services简介 1.什么是Web Services? Web Services 是应用程序组件 Web Service ...
- 学习参考《Flask Web开发:基于Python的Web应用开发实战(第2版)》中文PDF+源代码
在学习python Web开发时,我们会选择使用Django.flask等框架. 在学习flask时,推荐学习看看<Flask Web开发:基于Python的Web应用开发实战(第2版)> ...
- Flask web开发 处理Session
本文我们在上篇文章<Flask web开发 处理POST请求(登录案例)>的基础上,来讲述Flask对session的支持. 在上面案例上,我们需要修改和新增如下功能 1.登录成功后的 ...
- Flask Web开发读书笔记
开篇:目前想自学Flask Web开发--基于Python,找了几本书准备啃啃,同时也会分享读书笔记.希望和大家一起进步. Flask是小型框架,可以算是微框架,但是他的功能还是比较多 Flask有三 ...
- Flask Web开发从入门到放弃(一)
第1章 章节一 01 内容概要 02 内容回顾 03 路飞学城之加入购物车 04 路飞学城之结算 05 路飞学城之立即支付 06 路飞学城之后续计划 07 Flask框架简介和快速使用 08 FLas ...
- [flask/python/web] 解析flask web开发(Miguel著)一书第11章主页不显示博文表单的问题
---------------------------------------------以下内容2017.7.14更新---------------------------------------- ...
随机推荐
- (IOS)悬浮按钮Demo
思路:传入一个底层的view,将悬浮按钮(用view实现)和展开的子按钮列表add在其上,子按钮列表开始将坐标和悬浮按钮对应好后先将其隐藏,悬浮按钮识别到tap手势后触发展示子按钮列表的方法.通过在t ...
- Json.Net系列教程 4.Linq To JSON
原文 Json.Net系列教程 4.Linq To JSON 更改历史 2013-05-31 添加一个FAQ 一.Linq to JSON是用来干什么的? Linq to JSON是用来操作JSO ...
- CI引入外部javascript和css
假定baseurl 为 $config['base_url']='http://localhost/codeigniter/'; 调用 <link rel="stylesheet&qu ...
- 如何使用 Barracuda 防火墙设置/保护 Azure 应用程序
如果某企业在 Windows Azure 上托管某个应用程序,该应用程序会在某个特定时间暴露到 Internet,以用于商业用途.公共 Internet 带来 客户的同时也带来了攻击者. Tim ...
- podoWeb极品流氓软件
用firefox做页面网络性能测试, 打开网页就会发现页面不停的去请求googleapi.com上的jquery Or swfobject.js,页面就此卡住,一直在等待类似这两个请求的返回,知道Ab ...
- CERC 2013 Magical GCD
题目大意如下:给定一个序列,每个序列有值xi,现给定t个数列,对于每个长n的数列,求一段[l,r]使 [r-l+1]*gcd(l,r)最大,gcd(l,r)指的是该连续区间的最大公约数. 不难想到n^ ...
- _WSAStartup@8,该符号在函数 _main 中被引用
int WSAStartup( __in WORD wVersionRequested, __out LPWSADATA lpWSAData ); WSAStartup 格 式: int PASCA ...
- Airport(未解决。。。)
Airport Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Sub ...
- TCP传输连接建立与释放详解
一直以来有许多读者朋友对TCP的传输连接建立和释放过程不是很理解,而这又是几乎网络认证中必考的知识点,包括软考.CCNA\CCNP.H3CNA\H3CNE等,为此再把笔者年度巨作,广受好评的——< ...
- Andorid Binder进程间通信---Binder本地对象,实体对象,引用对象,代理对象的引用计数
本文參考<Android系统源码情景分析>,作者罗升阳. 一.Binder库(libbinder)代码: ~/Android/frameworks/base/libs/binder --- ...