• 基于Flask实现博客开发--准备工作


    背景说明

    本项目是基于《深入理解flask》一书,主要是用来记录学习历程和交流心得,所以写得不好请大神勿喷。

    准备工作


     virtualenv介绍

    也许 Virtualenv 是你在开发中最愿意使用的,如果你在生产机器上有 shell 权限的时候,你也会愿意用上 virtualenv。

    virtualenv 解决了什么问题?如果你像我一样喜欢 Python 的话,有很多机会在基于 Flask 的 web 应用外的其它项目上使用 Python。 然而项目越多,越有可能在不同版本的 python,或者至少在不同 python 库的版本上工作。 我们需要面对这样的事实:库破坏向后兼容性的情况相当常见,而且零依赖的正式应用也不大可能存在。 如此,当你的项目中的两个或更多出现依赖性冲突,你会怎么做?

    Virtualenv 的出现解决这一切!Virtualenv 能够允许多个不同版本的 Python 安装,每一个服务于各自的项目。 它实际上并没有安装独立的 Python 副本,只是提供了一种方式使得环境保持独立。

    ---摘自flask官网

     virtualenv是一个独立的环境,它不会破坏你现有机器上的全局环境。--也称为沙盒环境

    1、安装virtualenv

    如果你在 Mac OS X 或 Linux下,用以下命令来安装:

    sudo easy_install virtualenv或者sudo pip install virtualenv

    一旦成功安装 virtualenv,运行 shell 创建自己的环境。我通常会创建一个项目文件夹,其下创建 venv 文件夹:

    $ mkdir myproject
    $ cd myproject
    $ virtualenv venv
    New python executable in venv/bin/python
    Installing distribute............done.

    查看这条命令干了什么事情:它将本机的python开发环境拷贝了一份,甚至包括pip。

    # tree venv/ -L 2
    venv/
    ├── bin
    │   ├── activate
    │   ├── activate.csh
    │   ├── activate.fish
    │   ├── activate_this.py
    │   ├── alembic
    │   ├── easy_install
    │   ├── easy_install-2.6
    │   ├── gunicorn
    │   ├── gunicorn_django
    │   ├── gunicorn_paster
    │   ├── mako-render
    │   ├── pip
    │   ├── pip2
    │   ├── pip2.6
    │   ├── python
    │   ├── python2 -> python
    │   ├── python2.6 -> python
    │   ├── python-config
    │   ├── uwsgi
    │   └── wheel
    ├── include
    │   └── python2.6 -> /usr/include/python2.6
    ├── lib
    │   └── python2.6
    ├── lib64 -> lib
    └── pip-selfcheck.json

    6 directories, 21 files

    2、激活环境

    现在,只要你想要在某个项目上工作,只要激活相应的环境。在 OS X 和 Linux 下,使用如下命令:

    $ . venv/bin/activate或者$source venv/bin/activate

    如果你是个 Windows 用户,使用如下命令:

    $ venvscriptsactivate
    
    激活后,shell如下:
    (venv)# 
    #退出沙盒换回全局python环境
    (venv)# deactivate 

    #

    3.安装flask

    沙盒环境准备好了,现在我们正式开始体验flask,先安装flask:
    (venv)# pip install Flask

    4.一个栗子

    一个最小的应用
    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)

    那么这段代码做了什么?

        1. 首先我们导入了类 Flask 。这个类的实例化将会是我们的 WSGI 应用。第一个参数是应用模块的名称。 如果你使用的是单一的模块(就如本例),第一个参数应该使用 __name__。因为取决于如果它以单独应用启动或作为模块导入, 名称将会不同 ( '__main__' 对应于实际导入的名称)。
        2. 接着,我们创建一个该类的实例。我们传递给它模块或包的名称。这样 Flask 才会知道去哪里寻找模板、静态文件等等。
        3. 我们使用装饰器 route() 告诉 Flask 哪个 URL 才能触发我们的函数。
        4. 定义一个函数,该函数名也是用来给特定函数生成 URLs,并且返回我们想要显示在用户浏览器上的信息。
        5. 最后我们用函数 run(host='0.0.0.0') 启动本地服务器来运行我们的应用,这里使用0.0.0.0来监控本机任意IP,为了便于后面在浏览器上测试。默认侦听             localhost。
            if __name__ =='__main__': 确保服务器只会在该脚本被 Python 解释器直接执行的时候才会运行,而不是作为模块导入的时候。

            请按 control-C 来停止服务器。

    最后,在浏览器上访问:http://yourip:5000

     

  • 相关阅读:
    Struts学习之手动验证
    Struts学习之文件上传
    Struts学习之模型驱动
    Struts学习之类型转换
    Struts学习之自定义拦截器
    Java基础之"=="和 和 equals 方法的区别
    Hadoop学习之Hadoop案例分析
    Hadoop学习之Hadoop集群搭建
    Hadoop学习之自定义二次排序
    Hadoop学习之Mapreduce执行过程详解
  • 原文地址:https://www.cnblogs.com/skyflask/p/6648769.html
Copyright © 2020-2023  润新知