flask学习笔记01
虚拟环境的建立
为什么要建立虚拟环境哪?
在实际开发中几乎人人都会用到虚拟环境,因为在实际开发中不同的项目可能会用同一个模块的不同的版本,而不同的版本经常是不兼容的。会引发各种各样的错误,这时候就要用一个个‘箱子’把不同的项目隔开,而这个箱子就是不同的虚拟环境。
建立虚拟环境的步骤
1.建立一个系统变量WORKON_HOME
我的电脑>属性>高级系统设置>环境变量>系统变量>新建
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201020153726283.png#pic_center
2.cmd命令
pip install pipenv
3.建立一个项目文件夹,然后在cmd中cd到这个文件夹
pipenv
如果成功了会在文件夹里创建一个这样的文件
4.在python中设置虚拟环境
file>setting>project> interpreter
这是默认的环境,里面都是我安过的package,不过接下来我们要添加一个新的虚拟环境,并且这里安过的package在新的虚拟环境中是没有的
勾选existing后添加地址(它默认会给你写一个)
5.安装package
可以看到这个虚拟环境中的package很少,我们点击加号来添加一些
点击下面的manage,可以添加镜像可以大大提升下载速度,我这里换源了豆瓣
换完源搜索选中对应的package,点击install package,就安装了。
第一个flask程序
我们直接上代码
from flask import Flask
app = Flask(__name__)
#视图函数
@app.route('/') #路径
def hello_world():
return "我就是云顶棋王"
if __name__ == "__main__":
app.run()
app是对flask类进行实例化
@app.route()是装饰器用来设置路径
下面是运行的结果
* Serving Flask app "第一个flask程序" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
显示的就是视图函数里的返回值
几种debug模式
在生产模式下调试是会用到debug,我们来看看flask的几种debug实现方法
if __name__ == "__main__":
# 几种debug模式(只是用于生产模式)
app.run(debug=True)
app.debug=True
app.run()
# app.config是字典的子类
app.config.update(DEBUG=True)
app.config.update({'DEBUG':True})
app.run()
用这三种代码可以直接启动debug模式
当代码中没有错误时会正常显示,只有在代码中有错误时才会进入debug模式,
我们在代码中,加一个错误
a = 10/0
然后直接按ctrl+s就可以直接运行了
可以直接看到除零错误zerodivisionerror
可以点击右边的小黑框,然后输入pycharm里的run里的Debugger PIN:就可以使用类似pycharm里的python console的console调试功能
配置文件
当以后的项目变得复杂之后,想要修改HOST或者是DEBUG时,逐行的修改太麻烦了,所以我们可以设置一个文件,都引用这个文件里的参数,当需要修改时直接修改这个文件里的参数的就行。
然后在函数中引用这个文件里的参数
import config
# app.config.from_object('config')
# app.config.from_pyfile('config.py')
# pyfile里面有个默认时False的参数silent,当他True时 当文件写错时也不会报错
有两种引用模式,如上
url和视图
我们可以给他设置路径来设定它的访问路径
# @app.route('/list/<int:sid>/')
# def article(sid):
# return "这是第{}篇文章".format(sid)
<>是固定的格式,在里面添加可变的路径
sid是的变量,用来存路径,
int是约束条件,要求sid只能是整数类型
还有其他的约束条件
string: 默认的数据类型,接受没有任何斜杠/的字符串。
int: 整形
float: 浮点型
path: 和string类似,但是可以传递斜杠/。
uuid: uuid类型的字符串,一般用于加密密码
any:可以指定多种路径
@app.route('/<any(route1,route2):url_path>/')
def item(url_path):
return url_path
这样就可以任意访问any里的多个路径
此外应用request模块还有参数输入模式
先导入模块
from flask import Flask,request
@app.route('/input/')
def input():
name = request.args.get('name')
return name
来看效果
r-1603179307408)]
此外应用request模块还有参数输入模式
先导入模块
from flask import Flask,request
@app.route('/input/')
def input():
name = request.args.get('name')
return name
来看效果
谢谢各位的观看,如果有错误的地方,恳请指正。