python中flask(二)
成功实现了hello world程序之后,下一部分是动态路由和调试模式。
1.动态路由:
最开始写的hello world程序里,只有一个固定网页,而如果我们想要写一个根据实际情况调整输出内容的网页时,就要用到动态路由了。
我们在hello world的基础上继续写即可:
route即是指定路径,我们可以写成:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
@app.route('/user/')
def user():
return 'Hello user!'
@app.route('/user/<name>')
def username(name):
return 'Hello %s' % name
if __name__ == '__main__':
app.run()
第一个route指定的是视图函数hello_world的URL,而第二个指定的是user函数的URL,同理,第三个route指的是第三个函数username的URL,我们可以看到三者之间的区别。
那我们如何使用第二三个函数呢?
其实很简单只要调整我们的网址就可以了,假设我们使用的默认网址: http://127.0.0.1:5000 这个网址是第一个函数hello world的路径。那比较一下三者之间的区别:/user/指的是原网址的后面加一个/user/,即我们写成 http://127.0.0.1:5000/user/即可,第三个中的代表的是一个变量,‘<>’这个符号意思是我们可以在URL中输入一些东西,实现网页的动态变化,即所谓的传参,比如说我们可以写成http://127.0.0.1:5000/user/Jason 那么Jason就会被传入username这个函数里,就会输出 Hello Jason,如果把Jason换成Tom就会输出Hello Tom。这就实现了我们所说的动态输出。
结果可以看下图:
这个是含变量的:/user/Jason
这个是单纯的/user/
2.调试模式
在之前我们实现了动态路由,下一步就是维护你的网站,而其中最方便的方法就是调试,代码是:app.run(debug=True),它允许你在运行的时候调整你的代码,改完代码直接command+S即可保存,保存后,debug就会自动反馈:
即 detected change 发现更改,然后就会重新加载你的网页,只要再刷新一次就可以看见更改后的网页了。
同时debug会为你代码的问题报错,在网页上就可以看到error在第几行,不需要在终端找bug。比如我们写一个错误代码
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
a=1
b=0
c=a/b
return 'Hello world'
if __name__ == '__main__':
app.run(debug=True)
显然a/b的时候,b不能等于0,我们可以运行这个代码
网页就会告诉我们错在哪一行(网页最下方告诉我们错误出现在第九行)。
如果你用的是pycharm的话可能会遇见debug用不了的情况,解决方法是:
先点击上面的文件夹名称,然后点击 edit configurations,会弹出第二张图。
点完之后,只要勾选 FLASK_DEBUG就可以使用debug了
除此之外,debug模式还可以通过导入配置文件实现,比如说我们先建一个叫debug_order的python脚本:
DEBUG=True
然后在原文件里,先 import 并使用:
运行可在终端看见: Debugger is active!说明我们成功打开了debug模式,当然了,也可以导入其他指令的python文件,方法类似,比如导入一些我们需要的参数,可以降低主文件的复杂程度。