一:安装

直接 pip install Flask,就可以安装好了

二:hello world

编写一个hello.py

# coding: utf-
from flask import Flask
app = Flask(__name__) @app.route('/')
def hello_world():
return 'Hello world' if __name__ == '__main__':
app.run()

然后在python解析器下运行
$ python hello.py
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
在浏览器上访问 http://127.0.0.1:5000/
然后就会出现 Hello world

1:上面有一个route的装饰器告诉Flask什么样的URL访问能触发这个函数
2: app.run() 这个也可以绑定具体的host和port

三:路由

如上面的程序,route() 装饰器把一个函数绑定到了对应的URL上了
基本用法:

# coding: utf-
from flask import Flask app = Flask(__name__) @app.route('/')
def hello_wold():
return 'Hello world' if __name__ == '__main__':
app.run()

变量规则:
要给 URL 添加变量部分,你可以把这些特殊的字段标记为 <variable_name> , 这个部分将会作为命名参数传递到你的函数。规则可以用 <converter:variable_name> 指定一个可选的转换器

# coding: utf-
@app.route('/user/<username>')
def show_user_profile(username):
# show the user profile for that user
return 'User %s' % username @app.route('/post/<int:post_id>')
def show_post(post_id):
# show the post with the given id, the id is an integer
return 'Post %d' % post_id

构造URL:

编写一个名为 cons_url.py的程序

# coding: utf-
from flask import Flask, url_for
app = Flask(__name__)
@app.route('/')
def index(): pass @app.route('/login')
def login(): pass @app.route('/user/<username>')
def profile(username): pass with app.test_request_context():
print url_for('index')
print url_for('login')
print url_for('login', next='/')
print url_for('profile', username='John Doe')

在命令行下运行程序,输出

$ python cons_url.py
/
/login
/login?next=%2F
/user/John%20Doe

HTTP方法:
默认情况下,路由只回应 GET 请求,但是通过 route() 装饰器传递 methods 参数可以改变这个行为

@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
do_the_login()
else:
show_the_login_form()

四:模板渲染

Flask 配备了 Jinja2 模板引擎
你可以使用 render_template() 方法来渲染模板

# coding: utf-
from flask import render_template @app.route('/hello/')
@app.route('/hello/<name>')
def hello(name=None):
return render_template('hello.html', name=name)

Flask 会在 templates 文件夹里寻找模板。所以,如果你的应用是个模块,这个文件夹应该与模块同级;如果它是一个包,那么这个文件夹作为包的子目录:

情况 : 模块:
/application.py
/templates
/hello.html 情况 : 包:
/application
/__init__.py
/templates
/hello.html

更多模板请到:http://docs.jinkan.org/docs/jinja2/

五:重定向:

# coding:utf-
from flask import Flask, redirect, url_for
app = Flask(__name__) @app.route('/index/', methods=['GET', 'POST'])
def index():
# return redirect('/login/')
return redirect(url_for('login')) @app.route('/login/', methods=['GET', 'POST'])
def login():
return "LOGIN" app.run()

用  redirect() 函数来进行url重定向

六:定义错误页面:

# coding:utf-8
from flask import Flask, abort, render_template
app = Flask(__name__) @app.route('/index/', methods=['GET', 'POST'])
def index():
return "OK" @app.errorhandler()
def page_not_found(error):
return render_template('page_not_found.html'), app.run()

用@app.errorhandler(http错误码) 来触发一个函数

参考:

http://docs.jinkan.org/docs/flask/
   http://flask.pocoo.org/

Flask简单学习的更多相关文章

  1. 读Flask源代码学习Python--config原理

    读Flask源代码学习Python--config原理 个人学习笔记,水平有限.如果理解错误的地方,请大家指出来,谢谢!第一次写文章,发现好累--!. 起因   莫名其妙在第一份工作中使用了从来没有接 ...

  2. Log4j简单学习笔记

    log4j结构图: 结构图展现出了log4j的主结构.logger:表示记录器,即数据来源:appender:输出源,即输出方式(如:控制台.文件...)layout:输出布局 Logger机滤器:常 ...

  3. 基于Server-Sent Event的简单聊天室 Web 2.0时代,即时通信已经成为必不可少的网站功能,那实现Web即时通信的机制有哪些呢?在这门项目课中我们将一一介绍。最后我们将会实现一个基于Server-Sent Event和Flask简单的在线聊天室。

    基于Server-Sent Event的简单聊天室 Web 2.0时代,即时通信已经成为必不可少的网站功能,那实现Web即时通信的机制有哪些呢?在这门项目课中我们将一一介绍.最后我们将会实现一个基于S ...

  4. shiro简单学习的简单总结

    权限和我有很大渊源. 培训时候的最后一个项目是OA,权限那块却不知如何入手,最后以不是我写的那个模块应付面试. 最开始的是使用session装载用户登录信息,使用简单权限拦截器做到权限控制,利用资源文 ...

  5. CentOS 简单学习 firewalld的使用

    1. centos7 开始 使用firewalld 代替了 iptables 命令工具为 firewall-cmd 帮助信息非常长,简单放到文末 2. 简单使用 首先开启 httpd 一般都自带安装了 ...

  6. Windows 下 Docker 的简单学习使用过程之一 dockertoolbox

    1. Windows 下面运行 Docker 的两个主要工具1): Docker for Windows2): DockerToolbox区别:Docker For Windows 可以理解为是新一代 ...

  7. 在MVC中实现和网站不同服务器的批量文件下载以及NPOI下载数据到Excel的简单学习

    嘿嘿,我来啦,最近忙啦几天,使用MVC把应该实现的一些功能实现了,说起来做项目,实属感觉蛮好的,即可以学习新的东西,又可以增加自己之前知道的知识的巩固,不得不说是双丰收啊,其实这周来就开始面对下载在挣 ...

  8. flask简单的路由分发

    flask简单的路由分发 from flask import Flask, request app = Flask(__name__) @app.route('/hello') def index() ...

  9. Linux——帮助命令简单学习笔记

    Linux帮助命令简单学习笔记: 一: 命令名称:man 命令英文原意:manual 命令所在路径:/usr/bin/man 执行权限:所有用户 语法:man [命令或配置文件] 功能描述:获得帮助信 ...

随机推荐

  1. indexOf刚开始写成IndexOf出错

    {{# if(d.fronturlmin ==null||d.fronturlmin ==""){ }} <img src="@System.Configurati ...

  2. Lambda表达式Contains方法(等价于SQL语句中的like)使用注意事项

    貌似已经半年多没写一篇帖子了,充分的说明要么老总一天折腾的让人心齐疲惫,没心情去写:要么另外一种可能就是自己不思进取,说白了就是懒.好在这种状态在今天被打破了.MoNey加油. 众所周知,想在Enti ...

  3. Logging - MVC Using Log4net Save to File and Database

    第一步:创建Config文件夹和log4net.config 第二步:在log4net.confg黏贴以下配置 <?xml version="1.0" encoding=&q ...

  4. 【NLP】Recurrent Neural Network and Language Models

    0. Overview What is language models? A time series prediction problem. It assigns a probility to a s ...

  5. 目前市场上有些什么样的数据库管理系统(DBMS),它们都有什么特点?它们之间的优缺点有什么?它们的使用场合分别是?

    1 要求 目前市场上有些什么样的数据库管理系统(DBMS),它们都有什么特点?它们之间的优缺点有什么?它们的使用场合分别是? 1.1 目前市场上有些什么样的数据库管理系统(DBMS) 目前市场上的数据 ...

  6. 动态追加js

    判断是否已引用js,如果没有会引发异常,在异常时添加引用 try { if (layui) {} } catch (ex) { var s = document.createElement('scri ...

  7. 资源推荐:特意挑选了11个可以称得上“神器”的Windows工具下载

    特意挑选了11个可以称得上“神器”的Windows工具,安装包获取方式在文末. 以下神器包含:OCR文字识别.百度云超速下载工具.本地文件搜索工具.软件卸载器.本地视频播放器.图片去水印神器.百度文库 ...

  8. BZOJ5037[Jsoi2014]电信网络——最大权闭合子图

    题目描述 JYY创建的电信公司,垄断着整个JSOI王国的电信网络.JYY在JSOI王国里建造了很多的通信基站.目前所有的基站 都是使用2G网络系统的.而现在3G时代已经到来了,JYY在思考,要不要把一 ...

  9. Win10报错0x800f0906

    在安装适用于Linux的Windows子系统(Beta)的时候,有选中开发人员模式这一步设置->更新和安全->针对开发人员->选中开发人员模式 如果报错0x800f0906 那是因为 ...

  10. 【Luogu3731】[HAOI2017]新型城市化(网络流,Tarjan)

    [Luogu3731][HAOI2017]新型城市化(网络流,Tarjan) 题面 洛谷 给定一张反图,保证原图能分成不超过两个团,问有多少种加上一条边的方法,使得最大团的个数至少加上\(1\). 题 ...