1.flask第一个程序:
#从flask这个框架中导入Flask这个类
from flask import Flask
app = Flask(__name__)
#初始化一个Flask对象,需要传递一个参数name,传递该参数的目的1.方便flask框
架去寻找资源2.方便flask插件比如Flask-Sqlalchemy出现错误的时候,好去寻找
问题所在的位置.
@app.route是一个装饰器
这个装饰器的作用,是做一个url与视图函数的映射。
127.0.0.1:5000,去请求hello_world这个函数,然后将结果返回给浏览器。
@app.route('/')
def hello_world():
return 'hello word'
if __name__ == '__main__':
app.run(debug=True)
在app.run()中传入一个关键字参数debug,如
app.run(debug=True),就是设置当前项目为debug模式。
debug模式的作用
*当程序出现问题的时候,可以在页面中看到错误信息和出错
的位置
*只要修改了项目中的python文件,程序就会自动加载,不需要
手动重启服务器。
2.URL传参:
@app.route('/article/<numb>/')
def article(numb):
return 'id是:%s' % numb
作用:可以在相同的url,但是指定不同的参数来加载不同的数据.
注意:参数需要放在两个尖括号中
视图函数中需要放和url中的参数同名的参数
3.反转URL:
导入url_for
示例:
from flask import Flask,url_for
app = Flask(__name__)
@app.route('/')
def hello_word():
print(url_for('hello_word')) #这里得到hello_word这个函数的url
if __name__ == '__main__':
app.run(debug=True)
作用:当hello_word的url发生改变与否,只要函数名称不改
变,我们就可以找到url
4.页面跳转和重定向:
导入redirect
示例:
from flask import Flask,url_for,redirect
app = Flask(__name__)
@app.route('/one/')
def one():
return '首页'
@app.route('/one/<number>/')
def hello_word(number): #定义一个参数number来判断用户是否登陆
if number == 1: #如果没有登陆返回首页,即 函数one
return 'hello_word'
else:
return redirect(url_for('one'))
if __name__ == '__main__':
app.run(debug=True)
用处:在用户访问一些需要登录的页面时,如果用户没有登录,redirect可以
让他重定向到登录页面