flask-1-原理及准备工作

1. 利用pipenv创建虚拟环境

a. 常用命令

cmd命令:新建文件(mkdir 文件名)
创建虚拟环境
-全局安装:pip install pipenv
-项目创建虚拟环境:在项目路径下 pipenv install
pipenv优势和作用:
-相较virtualenv安装更方便,没有权限问题
-可以隔离不同版本的python,包等。
安装flask:pipenv istall flask
pipenv管理命令:
-退出虚拟环境:exit
-进入:pipenv shell(若当前目录没有虚拟环境,会自动安装)
-卸载包:pipenv uninstall flask
-查看安装包的依赖关系:pipenv graph

唯一URL原则

@app.route(‘/hello/‘)
127.0.0.1/hello和127.0.0.1/hello/都可以访问,
当输入127.0.0.1/hello时,服务器进行了一次
重定向。因为唯一URL原则,实质上只有127.0.0.1/hello/能访问视图函数

路由的另外一种注册方法

开启自动调试模式:
(1.可以自动重启2.可以显示异常)
app.run(debug=True)
路由注册的两种方法:
1.@app.route(‘url’)
def 视图函数
特点:简洁,常用
2.app.add_url_rule(‘url’,view_func=视图函数名)
特点:基于类的视图(即插视图)只能使用app.add_url_rule()

注:@app.route装饰器,实际上是封装了
add_url_rule()

app.run相关参数与flask配置文件

在主程序中导入配置文件
1.from config import DEBUG
debug = DEBUG
2.(常用)载入配置文件
app.config.from_object(‘config路径’)
读取配置文件debug = app.config[‘DEBUG’]

config只能识别大写,若为小写会忽略掉

#DEBUG在flask中是默认参数,默认值为False

#可以使用config[]是由于config本身是字典的子类

if name的作用

  1. config文件:所有的参数名的字母都要大写

  2. if name的作用:
    为什么要使用 if name == ‘main‘:
    因为app.run()作为flask本身自带的服务器,可以在开发测试过程中使用.
    但当部署到生产环境上的时候,一般会采用nginx代理服务器+uwsgi服务器结构.
    在生产环境过程中APP模块是被导入或者加载执行的,有了if name判断就不会执行flask内置的服务器.以免造成影响.

响应对象 Response

状态码只是标识,不会影响内容。
重定向:
headers ={
‘location’:’url’
}
response = make_response(‘文本内容’,301)

return对象:resopnse
1.视图函数会返回很多附加信息:

#status code 200,404等 #content-type http headers

#flask在不指定的情况下,会默认content-type= text/html,这个参数作用为:告诉respons接收方解析响应的方法.
例如:content-type=text/html, 浏览器将返回内容用Html方式解析并展现给用户
content-type = application/json 浏览器将返回内容转换为json格式
content-type = text/plain 转换为普通字符串

flask非常方便的返回respons写法:
return ‘内容’, 301, headers
renturn 后面的三个参数被封装为respons对象,并且是元组格式,
使用此方式可以不用在使用respons对象,是flask支持的方式

书籍搜索查询API库资源

关键字搜索:
http://t.yushu.im/v2/book/search?q={}&start={}&count={}
isbn搜索:
http://t.yushu.im/v2/book/isbn/{isbn}

豆瓣api:
https://api.douban.com/v2/book

均有访问频率限制(一小时几百次)!

分享到