Flask框架学习笔记(一)安装篇(windows安装与centos安装)

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   
    

安装完毕,你可以立即打开 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>
    

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值