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的作用
config文件:所有的参数名的字母都要大写
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
均有访问频率限制(一小时几百次)!