pythonflask系列教程(Python安装Flask环境及简单应用示例)
pythonflask系列教程
Python安装Flask环境及简单应用示例本文实例讲述了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类定义(浅谈python新式类和旧式类区别)
- python3简单编程(Python3.5面向对象编程图文与实例详解)
- pythonexcel生成报表(python生成每日报表数据Excel并邮件发送的实例)
- pythonai识别算法(Python3调用百度AI识别图片中的文字功能示例测试可用)
- 如何去阿里云解析域名(利用Python+阿里云实现DDNS动态域名解析的方法)
- python计算1到10的阶乘的和(python计算阶乘和的方法1!+2!+3!+...+n!)
- python编程面试常见问题(分析经典Python开发工程师面试题)
- python 文本文件读取方法(Python逐行读取文件中内容的简单方法)
- python炫酷烟花源代码(python实现浪漫的烟花秀)
- python自带的ide的使用(基于python的ini配置文件操作工具类)
- pythonhttp文件服务器(使用Python创建简单的HTTP服务器的方法步骤)
- python虚拟环境和包使用教程(在win10和linux上分别安装Python虚拟环境的方法步骤)
- python实现购物网站(Python实战购物车项目的实现参考)
- python的解释器怎么安装其他版本(在Python文件中指定Python解释器的方法)
- python支持面向对象的程序设计(Python面向对象程序设计之类的定义与继承简单示例)
- python简单代码实例(Python实现 版本号对比功能的实例代码)
- 秦海璐一袭旗袍惹人倾心,将高级与淡雅展现的游刃有余(秦海璐一袭旗袍惹人倾心)
- 门外之见 海蛎子味 的表演,能走多远(门外之见海蛎子味)
- 三部冷门谍战剧,第一部2014年拍摄,至今还未播出(三部冷门谍战剧)
- 《金陵秘事》的剧情跌宕起伏 给观众带来的怎样的感官体验(金陵秘事的剧情跌宕起伏)
- 少儿口才表达影响未来一生,50首经典绕口令和孩子玩出聪明大脑(少儿口才表达影响未来一生)
- 玩网游居然让人更友善 很难以让人置信(玩网游居然让人更友善)
热门推荐
- mysql如何解析binlog(MySQL的binlog日志使用详解)
- ubuntu20.04安装启动问题(安装ubuntu18.04报:failed to load ldlinux.c32的问题及解决步骤)
- python实现螺旋矩阵(Python3实现的旋转矩阵图像算法示例)
- python怎么做图像识别(Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例)
- vue3兼容的插件多吗(关于vue3编写挂载DOM的插件问题)
- python与php比较(浅谈php调用python文件)
- 将mysql中的表导出来(MySQL之导出整个及单个表数据的操作)
- .Net单元测试的方法
- mysql添加注释视图(mysql创建表添加字段注释的实现方法)
- phpredis高级用法(PHP Redis扩展无法加载的问题解决方法)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9