1、安装虚拟环境
mosson@mosson:~$ sudo apt-get install virtualenv
2、创建一个项目目录
mosson@mosson:~$ mkdir myproject
3、进入项目目录
mosson@mosson:~$ cd myproject/
4、利用虚拟环境创建目录
mosson@mosson:~/myproject$ virtualenv venv
5、开启环境
mosson@mosson:~/myproject$ source /spider/bin/activate
效果:
(venv) mosson@mosson:~/myproject$

这个带有(venv)的是一个虚拟的环境 可以在环境里安装你需要的flask的版本,其他各种的软件包,不会与根下的python包有冲突

6、退出虚拟环境:

(venv) mosson@mosson:deactivate

二、简单的demo

1、'hello world'

.py文件

  1. from flask import Flask
  2. from flask import request
  3.  
  4. app = Flask(__name__)
  5.  
  6. @app.route('/')
  7. def hello_world():
  8. return 'Hello World!'
  9. if __name__ == '__main__':
  10. app.run()

访问方式:

demo2

.py

  1. from flask import Flask
  2. from flask import request
  3.  
  4. app = Flask(__name__)
  5.  
  6. @app.route('/user/<name>')
  7. def user(name):
  8. return '<h1>Hello %s </h1>' % name
  9.  
  10. if __name__ == '__main__':
  11. app.run()

访问方式

demo3:查看浏览器请求头中的 "User_Agent"信息

  1. from flask import Flask
  2. from flask import request
  3.  
  4. app = Flask(__name__)
  5.  
  6. @app.route('/')
  7. def index():
  8. user_agent = request.headers.get('User-Agent')
  9. return '<p>Your browser is %s</p>'%user_agent
  10.  
  11. if __name__ == '__main__':
  12. app.run()

任何时候一个请求来到Flask就会激活(或者称作pushes)application context和request contexts,当请求结束再销毁它们。这意味着请求到来的时候,你可以在当前线程中获取到current_app和g,类似地reqeust和session也能被获取到。当没有激活的application context或者request context的时候,获取这些变量会报错。

如下示例证明了application context是如何工作的:

  1. >>> from hello import app
  2. >>> from flask import current_app
  3. >>> current_app.name
  4. Traceback (most recent call last):
  5. ...
  6. RuntimeError: working outside of application context
  7. >>> app_ctx = app.app_context()
  8. >>> app_ctx.push()
  9. >>> current_app.name
  10. 'hello'
  11. >>> app_ctx.pop()

默认直接使用current_app.name是会报错的,

直到我们调用了app的app_ctx的push或pop方法改变了current_app的值。

注:这里把push和pop当做一个往current_app写入、推出application context的方法,而不要跟常见的数组的操作方法混淆了。

 

3、在前端页面中访问函数

url_for('.函数名')     提示:别忘了括号里面的点

函数实例:

  1. from flask import Flask,render_template
  2. from flask import request
  3.  
  4. app = Flask(__name__)
  5.  
  6. @app.route('/services')
  7. def services():
  8. return 'Services'
  9. @app.route('/about')
  10. def about():
  11. return 'About'
  12.  
  13. if __name__ == '__main__':
  14. app.run(debug=True)

效果展示:

点击 Services 或者 About 都会跳转到相应的函数里

4 、正则匹配路由

先定义一个正则转换器:

  1. from werkzeug.routing import BaseConverter
  2. class RegexConverter(BaseConverter):
  3. def __init__(self, url_map, *items):
  4. super(RegexConverter, self).__init__(url_map)
  5. self.regex = items[0]

设置 正则转换器的名字  : regex

app.url_map.converters['regex'] = RegexConverter

在路由里写上正则:

  1. @app.route('/user/<regex("[a-z]{3}"):user_id>')
  2. def user(name):
  3. return '<h1>Hello %s </h1>' % name

常见的 HTTP 方法:

get:

浏览器告知服务器:只获取页面上的信息并发给我

这是最常用的方法

post:

浏览器告诉服务器:想在url上发布新信息,并且

服务器必须确保 数据已存储且存储一次

这是 HTML 表单通常发送数据到服务器

put:

类似 post 但是服务器可能触发了存储过程多次,多次覆盖旧的值

原因:

  传输过程中连接可能会丢失

  这种情况下,浏览器的服务器之间的系统可能安全地第二次接收请求,而不破坏其他的东西

  post 只触发一次,所以 用 post 是不可能

delete:

删除给定位置的信息

head

浏览器告诉服务器:欲获取信息,但是只关心,消息头

应用应像 GET  请求一样来处理,但是不分发实际内容

在 flask中 你完全无需人工干预

底层的 Werkzeug 库已经替我们处理好了

options

给客户端提供一个敏捷的途径来弄清楚这个 url 支持 哪些 HTTP 方法

从 flask 0.6 开始 实现里自动处理

  1.  

flask--虚拟环境的更多相关文章

  1. Ubuntu下安装Flask虚拟环境及使用

    一.关于Flask介绍 诞生时间:Flask诞生于2010年,是Armin ronacher(人名)用 Python 语言基于 Werkzeug工具箱编写的轻量级Web开发框架. Flask框架包含两 ...

  2. Python flask虚拟环境安装

    1.安装virtualenv 2.在当前路径下创建文件夹,启动虚拟环境 3.在使用虚拟环境前需激活,前面出现(env说明在虚拟环境中).虚拟环境中默认安装了pip,所以直接pip安装flask 4.在 ...

  3. Flask虚拟环境连接mysql出现1366的解决方案

    报错信息 Warning: (1366, "Incorrect string value: '\xD6\xD0\xB9\xFA\xB1\xEA...' for column 'VARIABL ...

  4. windows安装python flask虚拟环境

    安装pipenv的虚拟环境主要是为了防止不同python版本之间冲突的问题,虚拟环境安装的包包不会对外部真实环境产生任何作用,只会作用于虚拟环境.这样,一个flask框架应用对应一个pipenv虚拟环 ...

  5. python之—flask虚拟环境

    一.安装: 输入以下命令可以检查系统是否安装了virtualenv : $ virtualenv --version 如果结果显示错误,你就需要安装这个工具. 1.Ubuntu 用户可以使用下述命令安 ...

  6. Windows下安装flask虚拟环境

    前提 已经安装好python2.x或者pyhton3.x的条件下,使用pip包管理工具 flask框架就不作介绍直接安装 开始安装 1. 命令窗口下: 进入windows的命令窗口有三种方式: 第一种 ...

  7. 初始化 Flask 虚拟环境 命令

    参考:<Flask Web开发> 系统:Mac OSX CMD // 激活环境 virtualenv venv source venv/bin/activate // 安装flask pi ...

  8. can not import Flask错误

    在学习flask官方文档——应用构建代码时,遇到了一个小问题照例子敲好代码以后出现了can not import  Flask错误,思考很久也没有解决,最后发现是因为应用模块和flask重名了.下面是 ...

  9. virtualenv 中 install flask 的小问题

    最经在学习Python flask 框架 ,用virtualenv建立好我的flask虚拟环境后,执行 sudo pip install flask 并没有报错 我以为已经装上了flask,但当我进入 ...

  10. flask shell命令

    在flask项目目录下,使用pipenv shell激活flask虚拟环境后,调用flask shell能够使用虚拟环境的python解释器进入交互式环境,并且工作目录还保留在flask项目目录. f ...

随机推荐

  1. Redis 初

    tcl8.6.1 $wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz $tar xzvf tcl8.6.1-src.tar.g ...

  2. urllib2.open(req).read() 报403的错误:怎么办?

    http://www.douban.com/group/topic/18095751/ heads = {'Accept':'text/html,application/xhtml+xml,appli ...

  3. C#创建datatable

    Asp.net DataTable添加列和行的方法 方法一: DataTable tblDatas = new DataTable("Datas"); DataColumn dc ...

  4. boost-asio-cpp-network-programming阅读笔记

    第二章:boost.asio 的基本原理 网络api boost.asio的命名空间 IP地址 端点 sockets 同步错误代码 socket成员函数 其他注意事项 read/write/conne ...

  5. HTTPS_SSL配置的步骤以及原理说明

    1.单向认证,就是传输的数据加密过了,但是不会校验客户端的来源 2.双向认证,如果客户端浏览器没有导入客户端证书,是访问不了web系统的,找不到地址,想要用系统的人没有证书就访问不了系统HTTPS概念 ...

  6. NHibernate和 FluentNHibernate

    NHibernate有两类配置文件,一个是数据库连接配置文件(一般写到程序配置文件里),另一个是数据表和实体的映射文件(实体类.hbm.xml) 开源的框架Fluent NHibernate,有了它, ...

  7. Spring4.1新特性——Spring MVC增强

    目录 Spring4.1新特性——综述 Spring4.1新特性——Spring核心部分及其他 Spring4.1新特性——Spring缓存框架增强 Spring4.1新特性——异步调用和事件机制的异 ...

  8. mvc view-controller mvc annotation-driven

    1.mvc view-controller 使页面直接通过某个连接跳转,不进过mvc handler 需要加一个配置 <mvc : view-controller path="/suc ...

  9. Aquarium Cycling

    http://www.fishyou.com/aquarium-cycling.php Aquarium Cycling Aquarium cycling actually refers to the ...

  10. 2.2 节的练习--Compiler principles, technologys, &tools

    2.2 节的练习 2.2.1 考虑下面的上下文无关文法: S -> S S + | S S * | a 试说明如何使用该文法生成串 aa+a* 试为这个串构造一颗语法分析树 ⧗ 该文法生成的语言 ...