• python 创建flask项目方法





    Flask是一个基于Python的web框架,它的设计目的是提供Web开发所需的最小功能子集。

    Flask与别的框架(尤其是采用其他编程语言的框架)的不同之处在于:它没有绑定诸如数据库查询或者表单处理等功能库,以及它们所组成的整个生态系统。它倾向于对这些功能的实现方式不做任何限定。

    这种系统带来的主要好处是:开发者能够使用他们想用的任何方式和工具,去设计他们的应用架构。另外,对于一些常见的通用功能,Flask没有以某种特定方式去实现,这意味着在Flask中,对标准库的使用会比其他框架里多,这保证了通用功能的稳定性及针对其他Python程序员的可读性。由于Flask社区十分庞大,所以该社区提供的添加通用功能的方式非常多。所以通过本系列教程,了解它们如何帮助我们避免重复造轮子。这些扩展的妙处在于,如果不需要那些额外的功能,就不用引入它们,这样我们的应用才会保持简洁、轻量。

    这种系统的最大弊端是,大部分新的Flask用户不知道如何正确地规划大型应用的结构,最后弄出一大堆让人难以理解和维护的代码。所以本教程另一个重点是如何为Flask应用创建模型/视图/控制器(MVC)架构。

    MVC体系在最初被发明时,主要用来设计桌面应用的用户界面。它将数据处理(model),交互逻辑(controller)和用户界面(view)隔离成三层不同的组件。
    这三层组件的隔离,使得程序员不用为每个网页重新实现一遍相同的功能,而是只要重用那些代码。比如,若是没有把处理数据的代码拆分到单独的函数中,那么我们不得不在每个页面的渲染函数里,把同样的数据库连接代码和SQL查询代码都写一遍。

    我们将使用git做为版本控制软件,开发环境为ubuntu.python版本为3.4.3

    安装flask
    使用pip安装,由于是在python3环境中,所以使用pip3.
    pip3 install flask

    使用git做版本管理
    创建工程目录
    mkdir flask_tutorials

    切换到工程目录
    cd flash_tutorilas

    初始化版本库
    git init

    创建版本库过滤文件
    touch .gitignore

    向.gitignore文件中写入以下内容,过滤env目录,python的编译文件:
    cat .gitignore
    env/
    *.pyc
    开始我们的项目
    config.py:

    class Config(object):
    pass

    class ProdConfig(Config):
    pass

    class DevConfig(Config):
    DEBUG = True

    main.py:

    from flask import Flask
    from config import DevConfig

    app = Flask(__name__)
    app.config.from_object(DevConfig)

    @app.route('/')
    def home():
    return '<h1>Hello World!</h1>'

    if __name__ == '__main__':
    app.run()

    对于一些了解Flask API的读者来说,这个程序非常基础,它只是在我们访问http://127.0.0.1:5000的时候,在浏览器中显示一行"Hello World!"。另外,Flask用户可能很不熟悉的一个地方是,这里使用了config.from_object,而不是app.confing['DEBUG']。使用from_object是因为未来我们会加入很多配置项,如果要在不同的配置之间切换,那么手动去改每个变量是一件烦琐乏味的事。

    提交我们的代码
    git add --all
    git commit -m "your comment"

    启动web服务
    zhangxa@ubuntu:~/python/flask_tutorials$ python3 main.py
    * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
    * Restarting with stat
    * Debugger is active!
    * Debugger pin code: 267-148-615

    使用flask-script
    Flask有众多扩展,我们将首先使用Flask Script扩展。使用它可以创建命令,并在Flask的应用上下文中执行,因为这样才能对Flask对象进行修改。
    Flask Script自带了一些默认的命令,可以运行服务器或者开启带应用上下文的Python命令行。

    安装
    pip3 install flask-script

    使用
    先创建一个简单的manage.py脚本。
    manage.py:
    首先,导入Flask Script对象,代码如下:

    from flask_script import Manager, Server
    from main import app

    然后把你的app传给Manager对象,以初始化Flask Script:
    manager = Manager(app)

    现在我们来添加一些命令。这里运行的服务器跟通过main.py运行的普通开发服务器是一样的。make_shell_context函
    数会创建一个Python命令行,并且在应用上下文中执行。返回的字典告诉Flask Script在打开命令行时进行一些默认
    的导入工作。
    manager.add_command("server", Server())

    @manager.shell
    def make_shell_context():
    return dict(app=app)

    通过manage.py运行命令行在将来会十分必要,因为一些Flask扩展只有在Flask应用对象被创建之后才会被初始化。直接
    运行默认的Python命令行会令这些扩展返回错误。


    然后,在文件结尾添加如下代码,这是Python的标准方式,用来限制仅在用户直接运行文件的时候,才执行上面的
    代码:
    if __name__ == "__main__":
    manager.run()现在你可以这样来运行开发环境服务器:Z:pythonflask_tutorials>python manage.py server * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit) * Restarting with stat * Debugger is active! * Debugger pin code: 273-062-909以及使用命令行Z:pythonflask_tutorials>python manage.py shell#我们来看下app有没有被正确导入>>> app<Flask 'main'>>>>
    总结

    现在我们已经搭建了开发环境,可以继续在Flask里面实现更高级的特性了。
    ---------------------

  • 相关阅读:
    spring属性的三种注入方法
    spring整合web项目原理
    IOC与DI区别
    近期的一些思考(前后台对接方面)
    关于form表单回车自动刷新
    css画心形、三角形的总结
    网页播放器与播放器定制
    css实现div内凹角样式
    20190614笔记(颜色透明度,css,filter,滤镜,计算属性,json和formData转换)
    关于注册页面的总结
  • 原文地址:https://www.cnblogs.com/duanlinxiao/p/9836102.html
Copyright © 2020-2023  润新知