热门关键词:

使用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()。


用户名 Name
评论 Comment

关注

SAP系统

  • 地 址:四川省成都市人民南路4段成科西路3号
  • 电 话:18215 660330
  • 手机:18215 660330
  • 传 真:18215 660330
  • 邮 箱:179001057@qq.com
  • 邮政编码:610000