首页 > 资讯 > > 内容页

五分钟,用Flask做一个简单的交互页面 环球速看

2023-05-29 11:53:44 来源:萝卜大杂烩 分享到 :

Python 作为一个万能且简单的编程语言,其在各个领域都有着很好的表现。

其中在 Web 领域,也有大名鼎鼎的 Django 和 Flask,今天我们就通过 Flask,用五分钟写一个简单的交互页面!

基本功能1、安装 Flask

在命令行中输入 pip install flask 即可安装 Flask。


【资料图】

2、创建 Flask 应用

在 Python 文件中,首先需要导入 Flask 模块,然后创建一个 Flask 应用对象。

示例代码如下:

from flask import Flaskapp = Flask(__name__)

这个代码会创建一个名为 app 的 Flask 应用对象。

3、编写路由

在 Flask 应用中,路由用于指定请求的 URL 与相应的处理函数之间的关系。可以使用 @app.route() 装饰器来定义路由。

示例代码如下:

@app.route("/")def index():    return "Hello, World!"

这个代码定义了一个名为 index() 的路由,它处理根路径 / 的请求,并返回字符串 "Hello, World!"。

4、运行应用

在命令行中输入 python app.py,其中 app.py 是你的 Python 文件名。这会启动 Flask 应用,并监听默认端口号(80)。

在浏览器中访问 http://localhost:5000,就可以看到页面上显示的 "Hello, World!" 的文本。

增强功能

下面我们增加一些高级功能,比如表单和提交

我们使用 Flask 中的 form 模块,这个模块提供了处理表单数据的方法和工具。

使用 Flask 和 form 模块创建一个简单的表单页面,并将表单数据提交到数据库中

from flask import Flask, render_template, requestfrom flask_wtf import FlaskFormfrom wtforms import StringField, SubmitFieldfrom wtforms.validators import DataRequiredapp = Flask(__name__)app.config["SECRET_KEY"] = "mysecretkey"class UserForm(FlaskForm):    name = StringField("Name", validators=[DataRequired()])    email = StringField("Email", validators=[DataRequired()])    submit = SubmitField("Submit")@app.route("/", methods=["GET", "POST"])def index():    form = UserForm()    if form.validate_on_submit():        # 将表单数据保存到数据库中        user = User(name=form.name.data, email=form.email.data)        db.session.add(user)        db.session.commit()        return redirect(url_for("index"))    return render_template("index.html", form=form)if __name__ == "__main__":    app.run(debug=True)

在上面的代码中,我们首先导入了需要的模块和类。然后定义了一个名为 UserForm 的表单类,它包含了三个字段:name、email 和 submit。其中 name 和 email 分别使用了 StringField 和 StringField,而 submit 则使用了 SubmitField。在表单类中还定义了一些验证器,用于确保表单数据的合法性。

接下来,我们在路由函数中创建了一个 UserForm 实例,并将其传递给模板进行渲染。如果用户提交了表单数据,并且表单验证通过,我们就会将表单数据保存到数据库中,并重定向到主页。否则,我们会将表单呈现给用户进行填写。

最后,我们在主函数中启动了应用,并开启了调试模式。这样就可以在本地运行应用,并访问 http://localhost:5000/来测试表单功能了。

好了,以上就是今天的分享,代码非常简单,5分钟直接搞定!

推荐阅读