萝卜大杂烩 | 五分钟,用flask做一个简单的交互页面

本文来源公众号“萝卜大杂烩”,仅用于学术分享,侵权删,干货满满。

原文链接:五分钟,用flask做一个简单的交互页面

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

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

基本功能

1、安装 Flask

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

2、创建 Flask 应用

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

示例代码如下:

from flask import Flask

app = 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, request
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField
from wtforms.validators import DataRequired

app = 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分钟直接搞定!

THE END !

文章结束,感谢阅读。您的点赞,收藏,评论是我继续更新的动力。大家有推荐的公众号可以评论区留言,共同学习,一起进步。

Flask一个使用Python编写的轻量级Web应用框架,它支持多种方式在不同页面间进行交互。其中,最常见的交互方式包括使用表单(Forms)、URL参数和会话(Session)。 1. 表单交互:通过在HTML表单中提交数据,用户可以将信息从一个页面传递到另一个页面Flask中处理表单提交通常涉及到GET和POST请求。GET请求通常用于数据的检索,而POST请求用于创建或修改数据。在Flask中,你可以使用`request`对象来获取表单数据。 2. URL参数:URL参数是一种通过URL传递数据的方式,也称为查询字符串。可以在URL的末尾添加查询参数,如`http://example.com/page?param1=value1&param2=value2`。在Flask中,这些参数可以通过`request.args`字典访问。 3. 会话(Session):Flask的会话机制允许你在不同请求之间存储信息。会话是跨请求保持用户状态的一种方式,它通过签名的cookie来存储信息,确保数据的安全性。在Flask中,可以通过`session`对象来存储和访问会话数据。 以下是这些方法的简单示例: 使用表单提交数据: ```python from flask import Flask, request, render_template_string app = Flask(__name__) @app.route('/login', methods=['GET', 'POST']) def login(): if request.method == 'POST': username = request.form['username'] password = request.form['password'] # 这里可以进行验证操作 return f'登录成功: {username}' return render_template_string(''' <form method="post"> <input type="text" name="username" /> <input type="password" name="password" /> <input type="submit" value="登录" /> </form> ''') app.run() ``` 使用URL参数: ```python from flask import Flask, request app = Flask(__name__) @app.route('/page') def page(): param1 = request.args.get('param1', default='default_value') param2 = request.args.get('param2', default='default_value') return f'param1: {param1}, param2: {param2}' app.run() ``` 会话数据示例: ```python from flask import Flask, session, redirect, url_for app = Flask(__name__) app.secret_key = 'your_secret_key' # 设置一个秘密密钥用于签名cookie @app.route('/') def index(): if 'username' in session: return f'欢迎回来, {session["username"]}!' return redirect(url_for('login')) @app.route('/login', methods=['GET', 'POST']) def login(): if request.method == 'POST': session['username'] = request.form['username'] return redirect(url_for('index')) return '登录页面' app.run() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值