首页 > 代码库 > flask-one

flask-one

安装:

1 pip install Flask
启动第一个脚本:
python hello.py   
访问地址:http://127.0.0.1:5000
脚本如下:
1 from flask import Flask
2 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 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 = True
15     app.run()

带有参数的url 

1 @app.route(/show/<username>)
2 def show_user(username):
3     return "show %s" % username

多参数传递:

1 @app.route(/show/<username>/<age>)
2 def show_user(username,age):
3     return "show "+username+" age:"+age
参数带有类型:
@app.route("/age/<int:age>")
def show_age(age):
    return "show age %d" % age

 

转换器有三种:

int float path
整型 可整型也可浮点型 普通类型,可带斜线

 

 

 

url唯一性对比:

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 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 = True
22     app.run()

 

引入静态css,js文件

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=http://www.mamicode.com/"{{ age }}">
7 <h1>{{ age }}</h1>
问题:单独一个url返回一个样式,毫无意义,如何传递多个值
使用list/dist即可
 
向模版文件中传递参数:
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