flask笔记1:初始化参数、App对象

Table of Contents

 

Flask安装配置

02认识flask

03虚拟环境

App对象的初始化和配置

01 app初始化参数说明

03 flask的配置参数设置

04 读取配置参数

05 app.run的使用


Flask安装配置

02认识flask

框架:能被服务器调用,根据客户端请求处理形成返回数据

轻量级框架:代表除了框架核心功能,没有提供丰富的工具组件,组件之间很少相互耦合,自由定制,功能扩展时更方便

Flask基于werkzeug工具箱(支撑WSGI协议)形成框架,模板的功能是由jinja2来的

Django使用命令新建工程,连目录层级都是他搭建好的,manage.py管理工程、数据库迁移,有缓存机制、文件存储系统、用户认证-->快速开发

Flask使用扩展包-->要做什么那是你的自由

常用扩展包:

Flask-SQLalchemy:数据库操作

Flask-migrate:迁移数据库

Flask-Mail邮件

Flask-WTF表单

Flask-Login:认证用户状态

Flask-restful:开发API

Flask-bootstrap:前端twitter Bootstrap框架

03虚拟环境

虚拟环境安装,避免包混乱,版本冲突,保证程序只能访问虚拟环境中的包,不会影响全局python解释器

Virtualenv虚拟环境原理:

虚拟环境是互相隔离的目录,能看到的变化只是当前目录前面多了个(flask)

在虚拟环境中pip安装不能sudo,否则变成系统环境,无法隔离

其实目录下多了. virtualenv隐藏目录,其中放了所有新建虚拟环境时安装的:

1). virtualenv/flask_py2/bin目录,其中存放了python解释所需的python2.7文件等

2). virtualenv/flask_py2/lib/python2.7/site-packages/下存放了flask等用pip安装的工具包。

查看是否安装virtualenv:

>>> virtualenv --version

我没有安装这个,同时用习惯了anaconda的虚拟环境,就直接在之前用过的flask虚拟环境做了,此处使用的py2,课程使用的flask==0.10.1,我使用的flask==1.1.1

activate py2_flask

查看当前虚拟环境安装过哪些工具包(好使)

pip list

或(更好使)

pip freeze

将工具包输出到requirements文件,使用>重定向

(py2_flask) D:\>cd D:\anacondaProject

(py2_flask) D:\anacondaProject>pip freeze > requirements.txt

在新环境中安装时使用:-r可将它逐行读取安装

pip install -r requirements.txt

App对象的初始化和配置

01 app初始化参数说明

from flask import Flask

app = Flask(__name__)

__name__表示当前模块的名字,flask以这个模块所在的目录为总目录,默认这个目录中的static为静态目录,templates为模板目录

print(__name__)

直接在该文件打印结果:

__main__

一般模块的名字是文件名,但是作为启动模块的名字却是固定的

import demo

作为模块导入打印结果:

demo

使用__name__等同于

app = Flask("__main__")

在static建立静态文件index.html或jpg尝试访问

activate py2_flask

cd /d D:\anacondaProject\where2go\webapp

python app.py

http://localhost/static/img/bg.jpg

初始化参数:Flask()中传的

import_name:__name__

static_url_path:访问静态资源对应url

static_folder:静态文件存放目录,默认static

template_folder:模板文件存放目录,默认templates

app = Flask(__name__,

       static_url_path="/python",

       static_folder="static",

       template_folder="templates")

http://localhost/python/img/bg.jpg

03 flask的配置参数设置

法一:创建config.cfg文件

DEBUG=TURE

使用config文件:

app.config.from_pyfile("config.cfg")

法二:使用对象配置参数

class Config(object):

       DEBUG = True

app.config.from_object(Config)

法三:修改config字典

app.config["DEBUG"]=True

04 读取配置参数

配置文件添加参数:

class Config(object):

       DEBUG = True

       ITCAST="python"

app.config.from_object(Config)

在视图函数中要读取参数值:

如果函数在app中,可以得到全局对象,app.config可以当作字典取值

@app.route('/')

def welcome():

       app.config.get("ITCAST")

在其他文件中视图不能直接得到app对象,使用app的全局代理

from flask import current_app

current_app.config.get("ITCAST")

05 app.run的使用

app.run(host= '0.0.0.0', port=80, debug=True)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章