本文摘自php中文网,作者零下一度,侵删。
安装:启动第一个脚本:
python hello.py
访问地址:http://127.0.0.1:5000
脚本如下:
1 | 1 from flask import Flask2 app = Flask(__name__)3 4 @app.route( '/' ) #路由指定5 def hello_world():6 return 'Hello worlds summerkxy' 7 if __name__ == '__main__' : #只有在本例使用的时候才会启动应用,包含该文件的话,不启动应用8 app.debug = True #开启调试模式9 app.run()
|
其中 app.debug = True 开启调试模式,也可以用app.run(debug=True)中加入参数;好处:在修改程序后不用重新启动应用。
这是最简单的应用。
1 | 1 from flask import Flask 2 app = Flask(__name__) 3 4 #第一个路由 5 @app.route( '/' ) 6 def hello_world(): 7 return 'Hello worlds summerkxy' 8 9 #第二个路由10 @app.route( '/summerkxy' )11 def summer(): #函数名随意,不可与自带函数名冲突;12 return "Hello summerkxy" 13 if __name__ == '__main__' :14 app.debug = True15 app.run()
|
带有参数的url
1 | 1 @app.route( '/show/<username>' )2 def show_user(username):3 return "show %s" % username
|
多参数传递:
1 | 1 @app.route( '/show/<username>/<age>' )2 def show_user(username,age):3 return "show " +username+ " age:" +age
|
参数带有类型:
1 | @app.route( "/age/<int:age>" )def show_age(age): return "show age %d" % age
|
转换器有三种:
int | float | path |
整型 | 可整型也可浮点型 | 普通类型,可带斜线 |
url唯一性对比:
1 | 1 @app.route( "/about/" )2 def show_about():3 return "about/" 4 5 @app.route( "/about" )6 def show_about1():7 return "about"
|
事实上只会匹配到第一个url
构造url url_for() #未知
根据请求的的方式,调用不同的函数,从而返回不同内容:
1 | 1 from flask import Flask,url_for #url_for暂时没用到 2 from flask import request 3 app = Flask(__name__) 4 5 @app.route( "/" ) 6 def index(): 7 return "index" 8 9 @app.route( '/login' ,methods=[ 'GET' , 'POST' ]) #首先会根据methods列表中的元素判断,如果没有找到就报错405方法不允许;10 def login():11 if request.method == 'POST' :12 return do_the_login()13 else :14 return show_the_login_form()15 def do_the_login():16 return "post" 17 def show_the_login_form():18 return "else method" 19 20 if __name__ == '__main__' :21 app.debug = True22 app.run()
|
引入静态css,js文件
1 | 1 @app.route( "/hello" )2 def hello():3 cssurl = url_for( 'static' , filename= 'style.css' )4 return render_template( "hello.html" ,age=cssurl)5 .html文件中6 <link type= "text/css" rel= "stylesheet" href= "{{ age }}" >7 <h1>{{ age }}</h1>
|
问题:单独一个url返回一个样式,毫无意义,如何传递多个值
使用list/dist即可
向模版文件中传递参数:
1 | 1 @app.route( "/hello" )2 def hello(name= 'summerkxy' ):3 return render_template( "hello.html" ,age=name)#变量名age就是传递到模版文件中的4 .html文件5 <h1>hello {{ name }}</h1>
|
以上就是flask-one实例详解的详细内容,更多文章请关注木庄网络博客!!
相关阅读 >>
Python如何修改dataframe列名
通过Python3实现任务的定时循环执行
Python学习日记
Python3 判断列表是一个空列表的方法
Python适合网页编程吗
vb和Python哪个速度快
Python爬虫是什么?为什么把Python叫做爬虫?
Python3实现购物车功能
Python如何生成随机密码?
没学过编程可以自学Python吗
更多相关阅读请进入《Python》频道 >>
人民邮电出版社
python入门书籍,非常畅销,超高好评,python官方公认好书。
转载请注明出处:木庄网络博客 » flask-one实例详解