Flask 依赖于两个外部库: Werkzeug 和 Jinja2 。 Werkzeug 是一个 WSGI (在 web 应用和多种服务器之间开发和部署的标准 Python 接口) 的工具集,Jinja2 负责渲染模板。
一、安装
Flask安装的前提条件
1.已安装python2.x版本
2.已安装easy_install
在安装flask之前,你必须要先安装python和easy_install,easy_install只支持pyhon2.x版本不支持python3.x版本,所以你在安装python的时候最好选择python2.x。这里是2.7.
python2.7的安装很简单,本站内有很多篇文章介绍,这里不加描述,路径任意,安装完成加入环境变量便可。
win7 :
配置环境变量
方法一:(计算机-》属性--》高级系统设置--》环境变量--》添加python安装路径)
方法二:cmd下
设置:set PYTHONPATH=%PYTHONPATH%;C:\My_python_lib
查看:echo %PATH%
easy_install安装:
下载地址:http://pypi.python.org/pypi/setuptools
windows版本的只会有一个 ez_setup.py 脚本,下载下来放在D:\Python\python2.7目录下执行,则会自动安装easy_install,目录:D:\Python\python2.7\Scripts
easy_install加入环境变量:路径为D:\Python\python2.7\Scripts
安装好这两个后则开始安装flask
安装 virtualenv,这个主要是用来做解释器环境隔离的,避免同一机器上的多个python或者多个python的库依赖
然后配置虚拟环境
然后cd到myvir目录的Scripts下
输入activate.bat,就进入了虚拟环境了,然后输入easy_install Flask安装
测试结果,是否安装成功:
在pycharm软件中,要创建flask项目,然后选择myvir中的python.exe运行脚本。
创建简单hello world脚本,文件名为test1.py:
from flask import Flask app=Flask(__name__) @app.route('/') def hello_world(): return "Hello World~~~" if __name__ == '__main__': app.run()
然后点击运行则会显示
可以通过给出的网址进行访问。注意:此时一直处于运行状态,完成后要关闭该端口则点击pycharm中的Run->stop。
默认只有本地可以访问,端口为5000.
最后一行修改为 app.run('0.0.0.0', 12345),就可以让其它人访问了
解析:
from flask import Flask
导入 Flask 类
app = Flask(__name__)
实例化对象 app ,参数为应用模块或包的名称,这里 __name__ 指的是 __main__ 主程序。这个参数是必需的,这样 Flask 就可以知道在哪里找
到模板和静态文件等东西。
@app.route("/")
使用 route() 装饰器告诉 Flask 触发函数的 URL 。可以自定义,如 @app.route("/test1.py"),访问时则后面要接文件名
def hello(): return "Hello World!"
定义的函数,用来生成相关联的 URL ,并返回需要在用户浏览器中显示的信息。
app.run()
运行服务器应用,运行后默认只有本地可以访问,如需让其他连接,可以指定 host ,如: app.run(host='0.0.0.0')
默认使用的端口是: 5000 ,可以使用自定义的主机和端口: app.run(host="0.0.0.0",port=8000)
可外部访问的服务器
如果你运行服务器,你会注意到它只能从你自己的计算机上访问,网络中其它任何的地方都不能访问。这是在默认情况,因为在调试模式,用户可以在你的计算机上执行任意 Python 代码。
如果你 禁用了 debug 或信任你所在网络的用户 ,你可以简单修改调用 run() 的方法使你的服务器公开可用,如下:
app.run(host='0.0.0.0')
这会让操作系统监听所有公开的IP。
二、windows下安装3.3版本的:
注意:如果默认已经安装了2.7的,想安装3.3的,则必须进入到3.3安装目录内,然后运行python ez_setup.py(ez_setup.py下载地址:https://pypi.python.org/pypi/setuptools)。
然后进入到刚生成的scripts目录下,执行下面的命令安装virtualenv。
同样,产生虚拟环境的时候也要用3.3的virtualenv,否则报错。
然后cd到myvir目录的Scripts下
输入activate.bat,就进入了虚拟环境了,然后输入easy_install Flask安装
三、centos6.4安装python2.6的flask框架::
安装执行命令:
yum install openssh-server python --version(查看是否是符合的版本) yum install python-setuptools easy_install virtualenv(系统默认安装了easy_install2.6) virtualenv <br />
安装完毕,你可以立即打开 shell 然后创建你自己的环境。
1.全局(不推荐):
easy_install Flask 全局安装,下面有局部安装的方法。
测试代码:
from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return "Hello World!" if __name__ == '__main__': app.run(host='0.0.0.0')
文件存放的位置没有要求,在任何地方都可以执行。( 全局安装)
从另外的服务器访问:http://IP:5000的方式
然后其他的,比如模板渲染则同样只需要在你的项目中创建templates文件夹的方式实现。
2.局部环境:
我通常创建一个项目文件夹,并在其下创建一个 venv 文件夹
[root@localhost opt]# mkdir myweb [root@localhost opt]#cd myweb [root@localhost myweb]# virtualenv venv(注意:这里的venv目录名字是自己设定的) New python executable in venv/bin/python Installing setuptools, pip...done.
现在,无论何时你想在某个项目上工作,只需要激活相应的环境。
好处:
所有东西都已经安装在这个虚拟环境中了,因此你自已主要的Python安装环境则不会受影响(可以同时支持几个环境的使用)。附加的一个好处是,用这种方式来安装时不需要root管理员权限。
迁移之后,执行文件会因为改变路径无法使用,还是需要重新构建环境。
在 OS X 和 Linux 上,执行如下操作:
[root@localhost venv]# . bin/activate #激活(每次运行都有是激活状态) (venv)[root@localhost venv]#
下面的操作适用 Windows:
$ venv\scripts\activate
无论通过哪种方式,你现在应该已经激活了 virtualenv(注意你的 shell 提示符显示的是活动的环境)。
现在你只需要键入以下的命令来激活 virtualenv 中的 Flask:
(venv)[root@localhost venv]# pip install Flask #只需开始执行一次 ...... Successfully installed Flask Werkzeug Jinja2 itsdangerous markupsafe Cleaning up...
几秒钟后,一切都搞定了。
可能会出错:
SSLError: The read operation timed out
Storing debug log for failure in /root/.pip/pip.log
这种错误的话只要重新执行该命令就可以了。
执行. activate.csh可以退出 virtualenv(不知道是不是正确的方式,但确实可以退出)
四、centos下安装python3.3的flask框架:
要是3.3的easy_install:
[root@localhost python3.3.3]# wget https://bootstrap.pypa.io/ez_setup.py [root@localhost python3.3.3]# python3.3 ez_setup.py (一定要指定3.3的执行文件,不然会使用系统的默认python) [root@localhost python3.3.3]# easy_install
此时补齐可看到版本
easy_install easy_install-2.6 easy_install-3.3
然后后面的安装跟2.6的步骤是一样的,只是安装的时候一定要指定确定的命令(3.3的还是2.6的)
安装完成后,两种版本互补影响,都有自己的虚拟环境,执行自己环境内的脚本。
之前安装成功,后面在另外一台服务器上安装则报错:
[root@www python3.3]# python3.3 ez_setup.py Extracting in /tmp/tmpj462kb Traceback (most recent call last): File "ez_setup.py", line 332, in <module> sys.exit(main()) File "ez_setup.py", line 329, in main return _install(archive, _build_install_args(options)) File "ez_setup.py", line 51, in _install with archive_context(archive_filename): File "/usr/local/python3.3/lib/python3.3/contextlib.py", line 48, in __enter__ return next(self.gen) File "ez_setup.py", line 101, in archive_context archive.extractall() File "/usr/local/python3.3/lib/python3.3/zipfile.py", line 1232, in extractall self.extract(zipinfo, path, pwd) File "/usr/local/python3.3/lib/python3.3/zipfile.py", line 1220, in extract return self._extract_member(member, path, pwd) File "/usr/local/python3.3/lib/python3.3/zipfile.py", line 1282, in _extract_member with self.open(member, pwd=pwd) as source, \ File "/usr/local/python3.3/lib/python3.3/zipfile.py", line 1202, in open close_fileobj=not self._filePassed) File "/usr/local/python3.3/lib/python3.3/zipfile.py", line 649, in __init__ self._decompressor = _get_decompressor(self._compress_type) File "/usr/local/python3.3/lib/python3.3/zipfile.py", line 612, in _get_decompressor return zlib.decompressobj(-15) AttributeError: 'NoneType' object has no attribute 'decompressobj' [root@www python3.3]#
缺少相关模块:
网上是通过下面的方式解决:
yum install build-essential libssl-dev libxml2-dev libbz2-dev libjpeg62-dev libreadline5-dev wv poppler-utils zlib1g zlib1g-dev zlibc libghc6-zlib-dev zlibc
但是我重新安装了一次python再次运行就没错误了。
但是安装virtualenv的时候又出问题了:
[root@www python3.3]# easy_install-3.3 virtualenv Searching for virtualenv Reading https://pypi.python.org/simple/virtualenv/ Download error on https://pypi.python.org/simple/virtualenv/: unknown url type: https -- Some packages may not be found! Couldn't find index page for 'virtualenv' (maybe misspelled?) Scanning index of all packages (this may take a while) Reading https://pypi.python.org/simple/ Download error on https://pypi.python.org/simple/: unknown url type: https -- Some packages may not be found! No local packages or download links found for virtualenv error: Could not find suitable distribution for Requirement.parse('virtualenv') [root@www python3.3]#
后来直接找到提示的路径(https://pypi.python.org/simple/virtualenv/)下载,也可以安装:
[root@www python3.3]# wget https://pypi.python.org/packages/source/v/virtualenv/virtualenv-1.9.tar.gz#md5=e03b76752b8ce7eee67c6298414cac79 [root@www python3.3]# ls bin ez_setup.py include lib setuptools-5.2.zip share virtualenv-1.9.tar.gz [root@www python3.3]# easy_install-3.3 virtualenv-1.9.tar.gz Processing virtualenv-1.9.tar.gz Writing /tmp/easy_install-quwwll/virtualenv-1.9/setup.cfg Running virtualenv-1.9/setup.py -q bdist_egg --dist-dir /tmp/easy_install-quwwll/virtualenv-1.9/egg-dist-tmp-xhue8r warning: no previously-included files matching '*' found under directory 'docs/_templates' warning: no previously-included files matching '*' found under directory 'docs/_build' Adding virtualenv 1.9 to easy-install.pth file Installing virtualenv script to /usr/local/python3.3/bin Installing virtualenv-3.3 script to /usr/local/python3.3/bin Installed /usr/local/python3.3/lib/python3.3/site-packages/virtualenv-1.9-py3.3.egg Processing dependencies for virtualenv==1.9 Finished processing dependencies for virtualenv==1.9 [root@www python3.3]# vi vi vigr virtualenv virtualenv-3.3 view vipw virtualenv-2.6 visudo
安装Flask的时候出现问题:
AttributeError: 'module' object has no attribute 'HTTPSConnection'
其实归根结底都是python没有正常安装,缺失了一些模块造成的,所以安装的时候一定要注意,如果没装好,那就重装吧。
安装python之前要安装所有的开发工具包
[root@lujie ~]# yum groupinstall "Development tools" [root@lujie ~]#yum install zlib-devel bzip2-devel openssl-devel ncurses-devel
五、总结安装:
easy_install virtualenv和pip install virtualenv的区别?
easy_insall的作用和perl中的cpan, ruby中的gem类似,都提供了在线一键安装模块的傻瓜方便方式,而pip是easy_install的改进版, 提供更好的提示信息,删除package等功能。老版本的python中只有easy_install, 没有pip。
easy_install的用法:
1) 安装一个包
$ easy_install <package_name> $ easy_install "<package_name>==<version>"
2) 升级一个包
$ easy_install -U "<package_name>>=<version>"
pip的用法
1) 安装一个包
$ pip install <package_name> $ pip install <package_name>==<version>
2) 升级一个包 (如果不提供version号,升级到最新版本)
$ pip install --upgrade <package_name>>=<version>
3)删除一个包
$ pip uninstall <package_name>

一、日志输出到文件使用模块:logging可以生成自定义等级日志,可以输出日志到指定路径日志等级:debug(调试日志)=5){clearTimeout(time)//如果连续10次获取的都是空日志清除定时任务}return}if(data.log_type==2){//如果获取到新日志for(i=0;i

在第一部分介绍了基本的Flask和IntellijIDEA集成、项目和虚拟环境的设置、依赖安装等方面的内容。接下来我们将继续探讨更多的Pythonweb应用程序开发技巧,构建更高效的工作环境:使用FlaskBlueprintsFlaskBlueprints允许您组织应用程序代码以便于管理和维护。Blueprint是一个Python模块,能够包

随着移动互联网和Web技术的迅速发展,越来越多的应用需要提供流畅、快速的用户体验。传统的多页面应用已经无法满足这些需求,而单页面应用(SPA)则成为了解决方案之一。那么,如何快速实现单页面应用呢?本文将介绍如何利用Flask和Vue.js来构建SPA。Flask是一个使用Python语言编写的轻量级Web应用框架,它的优点是灵活、易扩

Flask-RESTful和Swagger:Pythonweb应用程序中构建RESTfulAPI的最佳实践(第二部分)在上一篇文章中,我们探讨了如何使用Flask-RESTful和Swagger来构建RESTfulAPI的最佳实践。我们介绍了Flask-RESTful框架的基础知识,并展示了如何使用Swagger来构建RESTfulAPI的文档。本

Flask-Security:在Pythonweb应用程序中添加用户身份验证和密码加密随着互联网的不断发展,越来越多的应用程序需要用户身份验证和密码加密来保护用户数据的安全性。而在Python语言中,有一个非常流行的Web框架——Flask。Flask-Security是基于Flask框架的一个扩展库,它可以帮助开发人员在Pythonweb应用程序中轻

Flask和SublimeText集成:Pythonweb应用程序开发技巧(第六部分)SublimeText和Flask都是Pythonweb应用程序开发中的重要工具。然而,如何将二者集成起来,使得开发过程更加高效呢?本文将介绍一些SublimeText的插件和配置技巧,帮助你更方便地开发Flask应用程序。一、安装SublimeText插件F

Flask和Eclipse集成:Pythonweb应用程序开发技巧(第三部分)在前两篇文章中,我们介绍了如何将Flask与Eclipse集成,以及如何创建Flask应用程序。在本文中,我们将继续探讨如何开发和调试Flask应用程序,以及如何管理数据库。一、开发和调试Flask应用程序创建和运行Flask应用程序在Eclipse的ProjectExplo

一、概述Flask是一个轻量级的PythonWeb框架,支持Jinja2模板引擎。Jinja2是一个流行的Python模板引擎,它可以使用Flask来创建动态Web应用程序。web页面一般需要html、css和js,可能最开始学习pythonweb的时候可能这样写:fromflaskimportFlaskapp=Flask(__name__)@app.route('/')defhello():return'hellohelloworld!!!&am


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

SublimeText3 Linux new version
SublimeText3 Linux latest version

WebStorm Mac version
Useful JavaScript development tools

Dreamweaver CS6
Visual web development tools

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.

SublimeText3 Chinese version
Chinese version, very easy to use
