WEBKT

Python Flask快速搭建:GET/POST、HTML、静态资源与动态内容全攻略

123 0 0 0

前言

想不想用Python快速搭建一个Web服务器?用Flask框架,几行代码就能搞定! 这篇文章就带你一步步实现一个能处理GET/POST请求,返回自定义HTML页面,还能处理静态资源和动态内容的Web服务器。 别怕,超简单!

1. Flask安装与基本结构

首先,确保你安装了Python。 然后,用pip安装Flask:

pip install flask

安装完成后,创建一个app.py文件,这是我们Web应用的入口:

from flask import Flask, render_template, request

app = Flask(__name__)

# 路由和视图函数在这里定义

if __name__ == '__main__':
 app.run(debug=True)

这段代码做了什么?

  • from flask import Flask, render_template, request:导入Flask类和一些常用的函数,比如render_template用于渲染HTML模板,request用于处理请求数据。
  • app = Flask(__name__):创建一个Flask应用实例。
  • app.run(debug=True):启动Web服务器,debug=True 开启调试模式,方便开发。

2. 处理GET请求并返回HTML页面

现在,让我们定义一个路由,处理GET请求,并返回一个简单的HTML页面:

@app.route('/')
def index():
 return render_template('index.html')
  • @app.route('/'):这是一个装饰器,将URL / 绑定到 index 函数。 当用户访问网站根目录时,Flask会调用index函数。
  • render_template('index.html'):这个函数会查找名为index.html的模板文件,并将其渲染成HTML字符串返回给浏览器。

接下来,在项目根目录下创建一个名为templates的文件夹,并在其中创建一个index.html文件:

<!DOCTYPE html>
<html>
<head>
 <title>欢迎!</title>
</head>
<body>
 <h1>你好,世界!</h1>
 <p>这是一个简单的Flask应用。</p>
</body>
</html>

3. 处理POST请求

要处理POST请求,我们需要在HTML表单中使用POST方法,并在Flask中定义相应的路由:

@app.route('/submit', methods=['POST'])
def submit():
 if request.method == 'POST':
 name = request.form['name']
 return render_template('result.html', name=name)
  • methods=['POST']:指定这个路由只处理POST请求。
  • request.form['name']:从POST请求的表单数据中获取名为name的字段的值。

现在,我们需要创建两个HTML文件:form.htmlresult.html

form.html

<!DOCTYPE html>
<html>
<head>
 <title>表单</title>
</head>
<body>
 <form action="/submit" method="post">
 <label for="name">姓名:</label>
 <input type="text" id="name" name="name"><br><br>
 <input type="submit" value="提交">
 </form>
</body>
</html>

result.html

<!DOCTYPE html>
<html>
<head>
 <title>结果</title>
</head>
<body>
 <h1>你好,{{ name }}!</h1>
 <p>你提交了表单。</p>
</body>
</html>

别忘了,在app.py中添加访问form.html的路由:

@app.route('/form')
def form():
 return render_template('form.html')

4. 处理静态资源

通常,Web应用需要提供静态资源,比如CSS文件、JavaScript文件和图片。 Flask默认会在名为static的文件夹中查找静态文件。

创建一个名为static的文件夹,并在其中创建一个style.css文件:

body {
 font-family: sans-serif;
}

h1 {
 color: navy;
}

要在HTML中使用这个CSS文件,可以使用url_for函数:

<!DOCTYPE html>
<html>
<head>
 <title>欢迎!</title>
 <link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='style.css') }}">
</head>
<body>
 <h1>你好,世界!</h1>
 <p>这是一个简单的Flask应用。</p>
</body>
</html>

5. 处理动态内容

Flask可以使用Jinja2模板引擎来动态生成HTML内容。 在上面的例子中,我们已经使用了render_template函数来传递变量到HTML模板中。

例如,在result.html中,我们使用了{{ name }}来显示用户提交的姓名。

6. 完整代码

下面是完整的app.py代码:

from flask import Flask, render_template, request

app = Flask(__name__)

@app.route('/')
def index():
 return render_template('index.html')

@app.route('/form')
def form():
 return render_template('form.html')

@app.route('/submit', methods=['POST'])
def submit():
 if request.method == 'POST':
 name = request.form['name']
 return render_template('result.html', name=name)

if __name__ == '__main__':
 app.run(debug=True)

7. 运行Web应用

保存所有文件后,在命令行中运行app.py

python app.py

然后,在浏览器中访问 http://127.0.0.1:5000/,你就可以看到你的Web应用了!

总结

通过这篇文章,你学会了使用Python Flask框架搭建一个简单的Web服务器,包括处理GET/POST请求,返回自定义HTML页面,处理静态资源和动态内容。 这只是一个入门示例,Flask还有很多强大的功能等你来探索! 比如,数据库集成、用户认证、API开发等等。 赶紧动手试试吧!

Flask爱好者 Python FlaskWeb服务器HTML模板

评论点评