Python安装Flask环境及简单应用示例

作者:xuezhangjun 时间:2021-09-19 10:07:24 

本文实例讲述了Python安装Flask环境及简单应用。分享给大家供大家参考,具体如下:

安装环境

使用虚拟环境安装Flask,可以避免包的混乱和版本的冲突,虚拟环境是Python解释器的副本,在虚拟环境中你可以安装扩展包,为每个程序单独创建的虚拟环境,可以保证程序只能访问虚拟环境中的包。而不会影响系统中安装的全局Python解释器,从而保证全局解释器的整洁。

虚拟环境使用virtualenv创建,可以查看系统是否安装了virtualenv:


$ virtualenv --version

安装虚拟环境(须在联网状态下)


$ sudo pip install virtualenv
$ sudo pip install virtualenvwrapper

创建虚拟环境(ubuntu里须在联网状态下)


$ mkvirtualenv Flask_py

进入虚拟环境


$ workon Flask_py

退出虚拟环境

如果所在环境为真实环境,会提示deactivate:未找到命令


$ deactivate Flask_py

安装Flask

指定Flask版本安装


$ pip install flask==0.10.1

Mac系统:


$ easy_install flask==0.10.1

在ipython中测试安装是否成功


$ from flask import Flask

Flask程序运行过程:

所有Flask程序必须有一个程序实例。

Flask调用视图函数后,会将视图函数的返回值作为响应的内容,返回给客户端。一般情况下,响应内容主要是字符串和状态码。

当客户端想要获取资源时,一般会通过浏览器发起HTTP请求。此时,Web服务器使用WSGI(Web Server Gateway Interface)协议,把来自客户端的所有请求都交给Flask程序实例,程序实例使用Werkzeug来做路由分发(URL请求和视图函数之间的对应关系)。根据每个URL请求,找到具体的视图函数。 在Flask程序中,路由的实现一般是通过程序实例的装饰器实现。通过调用视图函数,获取到数据后,把数据传入HTML模板文件中,模板引擎负责渲染HTTP响应数据,然后由Flask返回响应数据给浏览器,最后浏览器处理返回的结果显示给客户端。

示例:


# 导入Flask类
from flask import Flask
#Flask函数接收一个参数__name__,它会指向程序所在的模块
app = Flask(__name__)
# 装饰器的作用是将路由映射到视图函数index
@app.route('/')
def index():
 return 'Hello World'
# Flask应用程序实例的run方法启动WEB服务器
if __name__ == '__main__':
 app.run()

给路由传参示例:

有时我们需要将同一类URL映射到同一个视图函数处理,比如:使用同一个视图函数 来显示不同用户的个人信息。


# 路由传递的参数默认当做string处理,这里指定int,尖括号中的内容是动态的
@app.route('/user/<int:id>')
def hello_itcast(id):
 return 'hello itcast %d' %id

返回状态码示例:

return后面可以自主定义状态码(即使这个状态码不存在)。当客户端的请求已经处理完成,由视图函数决定返回给客户端一个状态码,告知客户端这次请求的处理结果。


@app.route('/')
def hello_itcast():
 return 'hello itcast',999

abort函数:

如果在视图函数执行过程中,出现了异常错误,我们可以使用abort函数立即终止视图函数的执行。通过abort函数,可以向前端返回一个http标准中存在的错误状态码,表示出现的错误信息。

使用abort抛出一个http标准中不存在的自定义的状态码,没有实际意义。如果abort函数被触发,其后面的语句将不会执行。其类似于python中raise。


from flask import Flask,abort
@app.route('/')
def hello_itcast():
 abort(404)
 return 'hello itcast',999

重定向redirect示例


from flask import redirect
@app.route('/')
def hello_itcast():
 return redirect('http://www.baidu.com')

正则URL示例:


from flask import Flask
from werkzeug.routing import BaseConverter
class Regex_url(BaseConverter):
 def __init__(self,url_map,*args):
   super(Regex_url,self).__init__(url_map)
   self.regex = args[0]
app = Flask(__name__)
app.url_map.converters['re'] = Regex_url
@app.route('/user/<re("[a-z]{3}"):id>')
def hello_itcast(id):
 return 'hello %s' %id

设置cookie和获取cookie


from flask import Flask,make_response
@app.route('/cookie')
def set_cookie():
 resp = make_response('this is to set cookie')
 resp.set_cookie('username', 'itcast')
 return resp


from flask import Flask,request
#获取cookie
@app.route('/request')
def resp_cookie():
 resp = request.cookies.get('username')
 return resp

希望本文所述对大家基于flask框架的Python程序设计有所帮助。

来源:https://blog.csdn.net/xuezhangjun0121/article/details/77824466

标签:Python,Flask
0
投稿

猜你喜欢

  • Python requests timeout的设置

    2022-01-27 01:20:40
  • 深入SQL Server 跨数据库查询的详解

    2024-01-25 13:25:42
  • YUI Compressor 组件压缩 JavaScript 的一些原理

    2009-08-02 20:22:00
  • vux-scroller实现移动端上拉加载功能过程解析

    2024-05-09 10:42:21
  • js如何能知道浏览者计算机使用的语言是繁体还是简体

    2008-10-09 13:10:00
  • 怎样安全地关闭MySQL实例

    2024-01-20 02:39:20
  • python 实现端口扫描工具

    2022-12-05 23:02:45
  • Python实现获取命令行输出结果的方法

    2023-04-23 09:34:13
  • MySQL模糊查询用法大全(正则、通配符、内置函数)

    2024-01-22 13:48:50
  • 浅析Python 中整型对象存储的位置

    2021-10-06 13:40:20
  • 详解用python实现爬取CSDN热门评论URL并存入redis

    2022-08-30 00:11:35
  • python 调用c语言函数的方法

    2023-12-11 17:24:21
  • sina和265天气预报调用代码

    2007-11-19 13:32:00
  • 浅谈python数据类型及类型转换

    2023-08-28 15:25:32
  • keras实现theano和tensorflow训练的模型相互转换

    2023-04-18 05:49:26
  • Django配置Mysql数据库连接的实现

    2024-01-28 10:48:33
  • Python3.5装饰器原理及应用实例详解

    2023-11-07 23:15:51
  • Python中免验证跳转到内容页的实例代码

    2021-03-27 11:19:55
  • 浅谈JS中var,let和const的区别

    2024-05-09 15:07:16
  • Anaconda配置pytorch-gpu虚拟环境的图文教程

    2022-06-15 14:42:20
  • asp之家 网络编程 m.aspxhome.com