使用Flask进行Web开发
添加时间:2020-11-16 15:37:19
来源:
添加时间:2020-11-16 15:37:19
防伪码:CMSEASY05lOHU0CrtKoa5t205
Flask是Python的API,可让我们构建Web应用程序。它是由Armin Ronacher开发的。Flask的框架比Django的框架更明确,并且更易于学习,因为它具有更少的基本代码来实现简单的Web应用程序。Web应用程序框架或Web框架是模块和库的集合,可帮助开发人员编写应用程序而无需编写协议,线程管理等底层代码。Flask基于WSGI(Web服务器网关接口)工具箱和Jinja2模板引擎。
Flask入门:Flask
的安装需要Python 2.6或更高版本。您可以从任何python IDE上的flask包中导入Flask开始。要在任何环境下进行安装,您都可以单击下面给出的安装链接。
要测试安装是否正常,请查看下面的代码。
filter_none
亮度_4
# an object of WSGI application
from flask import Flask
app = Flask(__name__) # Flask constructor
# A decorator used to tell the application
# which URL is associated function
@app.route('/')
def hello():
return 'HELLO'
if __name__=='__main__':
app.run()
“ /” URL与hello()功能绑定。在浏览器中打开Web服务器的主页时,将相应地呈现此功能的输出。
通过调用run()函数来启动Flask应用程序。对于代码中的任何更改,应手动重新启动该方法。为了克服这个问题,启用了调试支持以便跟踪任何错误。
filter_none
亮度_4
app.debug = True
app.run()
app.run(debug = True)
路由:
如今,Web框架提供了路由技术,以便用户可以记住URL。直接访问网页而无需从主页导航是很有用的。这是通过以下route()装饰器将URL绑定到函数来完成的。
filter_none
亮度_4
# decorator to route URL
@app.route(‘/hello’)
# binding to the function of route
def hello_world():
return ‘hello world’
如果用户访问http:// localhost:5000 / hello URL,则hello_world()函数的输出将在浏览器中呈现。add_url_rule()如上例所示,应用程序对象的功能还可用于将URL与该功能绑定。
filter_none
亮度_4
def hello_world():
return ‘hello world’
app.add_url_rule(‘/’, ‘hello’, hello_world)
在烧瓶中使用变量:
烧瓶中的变量用于通过将变量部分添加到Rule参数来动态构建URL。此可变部分标记为。它作为关键字参数传递。参见下面的例子
filter_none
亮度_4
from flask import Flask
app = Flask(__name__)
# routing the decorator function hello_name
@app.route('/hello/<name>')
def hello_name(name):
return 'Hello %s!' % name
if __name__ == '__main__':
app.run(debug = True)
将上面的示例另存为hello.py并从Power Shell运行。接下来,打开浏览器并输入URL http:// localhost:5000 / hello / GeeksforGeeks。
输出:
您好GeeksforGeeks!
在上面的示例中,route()装饰器的参数包含附加到URL'/ hello'的变量部分作为参数。因此,如果输入了诸如http:// localhost:5000 / hello / GeeksforGeeks之类的URL,则“ GeeksforGeeks”将作为参数传递给hello()函数。
除了默认的字符串变量部分之外,还使用其他数据类型,例如int,float和path(用于目录分隔符通道的斜线)。Flask的URL规则基于Werkzeug的路由模块。这样可以确保形成的URL是唯一的,并且基于Apache规定的先例。
例子:
filter_none
亮度_4
from flask import Flask
app = Flask(__name__)
@app.route('/blog/<postID>')
def show_blog(postID):
return 'Blog Number %d' % postID
@app.route('/rev/<revNo>')
def revision(revNo):
return 'Revision Number %f' % revNo
if __name__ == '__main__':
app.run()
# say the URL is http://localhost:5000/blog/555
输出:
博客编号555
#在浏览器中输入此URL?http:// localhost:5000 / rev / 1.1
修订号:1.100000
在FLask中构建URL:
使用url_for()功能可以动态构建特定功能的URL 。该函数接受函数名称作为第一个参数,以及一个或多个关键字参数。看这个例子
filter_none
亮度_4
from flask import Flask, redirect, url_for
app = Flask(__name__)
@app.route('/admin') #decorator for route(argument) function
def hello_admin(): #binding to hello_admin call
return 'Hello Admin'
@app.route('/guest/<guest>')
def hello_guest(guest): #binding to hello_guest call
return 'Hello %s as Guest' % guest
@app.route('/user/<name>')
def hello_user(name):
if name =='admin': #dynamic binding of URL to function
return redirect(url_for('hello_admin'))
else:
return redirect(url_for('hello_guest', guest = name))
if __name__ == '__main__':
app.run(debug = True)
要对此进行测试,请保存以上代码并通过python shell运行,然后打开浏览器并输入以下URL:
输入: http:// localhost:5000 / user / admin
输出: Hello Admin
输入: http:// localhost:5000 / user / ABC
输出: Hello ABC as Guest
上面的代码具有一个名为user(name)的函数,可通过输入URL接受值。它检查接收到的参数是否与“ admin”参数匹配。如果匹配,则调用hello_admin()函数,否则调用hello_guest()。