vlambda博客
学习文章列表

浙教版必修2 Flask框架使用总结


1




创建第一个最简单的网页应用


from flask import Flask    #从flask库中导入Flask类
app = Flask(__name__)       #创建一个web应用实例app
@app.route('/')            #设置路由,指明地址是根路径
def index():              #创建视图(和路由成对使用)
    return    "这是我的第一个网页程序!"     #返回网页内容
if __name__=='__main__':   #运行web服务器
   app.run()

(左右滑动查看)


控制台输出


浙教版必修2 Flask框架使用总结


当用浏览器打开网页时,Web服务器将受到一条GET请求。


浏览器界面


浙教版必修2 Flask框架使用总结

2




创建带有参数的新网页(路由)


#2.创建带有参数的新网页(路由)
from flask import Flask     #从flask库中导入Flask类
app = Flask(__name__)       #创建一个web应用实例app
@app.route('/')             #设置路由,指明地址是根路径
def index():                #当请求的地址符合路由规则时,就会进入该函数。
    return '这是我的第一个网页程序!'
@app.route('/hello')      #添加新路由
def hello():              #路由对应的视图(hello为函数名,可以更换)
    return '你好!'
if __name__ == '__main__':
    app.run()

(左右滑动查看)


浏览器界面:注意URL的变化


浙教版必修2 Flask框架使用总结

3




使用变量


#3.使用变量
from flask import Flask     #从flask库中导入Flask类
app = Flask(__name__)       #创建一个web应用实例app
@app.route('/hello/<name>')             #设置路由,URL
def index(name):                #当请求的地址符合路由规则时,就会进入该函数。
    return 'hello,%s!'%name
if __name__ == '__main__':
    app.run()

(左右滑动查看)


浏览器界面:注意URL和显示内容


浙教版必修2 Flask框架使用总结

4




使用HTML模板,并传递变量


#3.使用HTML模板,并向模板中传递变量
from flask import Flask,render_template     #从flask库中导入Flask类,render_template函数
app = Flask(__name__)       #创建一个web应用实例app
@app.route('/')             #设置路由,指明地址是根路径
def index():                #当请求的地址符合路由规则时,就会进入该函数。
    return render_template('text1.html',s="hello world!")    # 引用templates中的html模板,并向模板中传递变量
if __name__ == '__main__':
    app.run()

(左右滑动查看)


HTML代码:注意变量的传递和HTML中变量的格式


浙教版必修2 Flask框架使用总结


浏览器显示:注意网页标题


浙教版必修2 Flask框架使用总结

注意:HTML模板需要放在 templates文件夹下,这是Flask内部定义的默认路径。

5




Flask_wtf表单库的使用


#5.用flask_wtf表单库创建表单
from flask import Flask,render_template,request
from flask_wtf import FlaskForm                                 #导入表单模块
from flask_bootstrap import Bootstrap                           #导入网页模板工具模块                         
from wtforms import StringField, PasswordField, SubmitField     #导入表单相关模块

app = Flask(__name__)
app.config['SECRET_KEY'] = 'hard_to_guess_string'               #表单内容通过加密传输,这行用于设置密码
bootstrap = Bootstrap(app)                  #初始化网页模板工具

class Formload(FlaskForm):                  #设置网页表单类
    name = StringField("用户名:")            #字符输入框
    Password = PasswordField("密码:")        #密码输入框
    Submit = SubmitField("登录")             #提交按钮

@app.route('/',methods=['GET', 'POST'])   
def result():
    form = Formload()                           #引用表单
    if request.method == 'POST':            #收到POST信息
        if form.name.data == form.Password.data:
            return render_template('text.html',s = form.name.data)
        else:
            return render_template('load.html',form=form)
    else:
        return render_template('load.html',form=form)   
    #引用templates中的html模板,并向模板中传递变量

if __name__ == '__main__':
    app.run(debug=True)                  #调试模式

(左右滑动查看)


注意:代码中使用 request.method== 'POST'接受按键按下后表单的返回值。

课本上采用的是form.validate_on_submit()检测按键按下事件,两者效果基本等价。 


load.html代码


浙教版必修2 Flask框架使用总结

text.html代码


浙教版必修2 Flask框架使用总结


浏览器登陆(load.html模板)


浙教版必修2 Flask框架使用总结


浏览器输入admin结果


浙教版必修2 Flask框架使用总结

浏览器输入rose结果


浙教版必修2 Flask框架使用总结

6




附录


浙教版必修2 Flask框架使用总结


浙教版必修2 Flask框架使用总结


推荐阅读   点击标题可跳转