from flask import Flask app = Flask(__name__)#创建了一个新的 Flask 应用程序实例,并将其赋值给变量app,name是一个特殊的python变量# @app.route('/')#定义一个装饰器,告诉flask当访问根目录/时执行什么函数# def index():#定义一个与根目录/关联的函数index# return ("hello world") @app.route('/flask')#这是访问/flask时的装饰器# def hello_flask(): return "hello flask" if __name__ == "__main__":#启动 Flask 应用程序的标准方式# app.run(host='127.0.0.1',debug=True,threaded = True)#运行应用程序,host表示在运行地址,此处为本地服务器ip127,threaded为多线程模式#
引入html模板:
from flask import Flask,render_template
app = Flask(__name__)
@app.route('/')
def index():
return render_template('首页.html')#返回一个首页.html渲染框架#
if __name__ == "__main__":
app.run(host='127.0.0.1',debug=True,threaded=True)
Flask动态文件:
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def index():
t_int = 129
t_str = 'curry'
t_list = [1, 2, 3, 5, 6]
t_dict = {
'name': 'Kenny',
'age': 25
}#定义各种变量#
return render_template('index.html', my_int=t_int, my_str=t_str, my_list=t_list, mt_dict=t_dict)#在该函数中定义网页中的变量#
if __name__ == '__main__':
app.run(debug=True, threaded=True)
HTML文件:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h2>我是模板</h2>
my_int : {{my_int}}
<br>
my_str : {{my_str}}
<br>
my_dict : {{my_dict}}
<br>
my_list : {{my_list}}
<h2>列表list数据</h2>
<hr>{{my_list[0]}}
<br>
{{my_list.1}}
</hr>
</body>
</html>#输出结果可看到显示的是变量的实际值#
Flask静态文件:
from flask import Flask,render_template,url_for
app = Flask(__name__)
@app.route('/')
def index():
return render_template('静态测试.html')
if __name__ == "__main__":
app.run(debug=True,threaded = True)
代码不变,添加了一个url_for模块
静态文件是指css,js,jpg等从外部引入不变的代码,使用url_for(‘函数名xxx’,关键词参数)来生成url。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="{{url_for('static',filename='css/main.css')}}">#通过url_for函数生成引用静态文件的 URL,并将其作为 CSS 文件的链接。Flask 会根据当前应用的配置,将其转换为正确的 URL 地址,这样,无论在什么环境中都可以引用该文件的相对路径,而不是单一的硬路径#
<title>Title</title>
{% block head %}{% endblock %}
</head>
<body>
{% block body %}{% endblock %}
</body>
</html>
父文件base.html通过 url_for 函数生成引用静态文件的 URL,并将其作为 CSS 文件的链接。
{% extends 'base.html'%}#引用base.html的模板#
{% block head %}#定义head开头#
<h2>hehe</h2>
{% endblock %}#head结束#
{% block body %}
<h1>Template</h1>
{% endblock %}
子文件引用自base.html的模板,使用模板继承可以使代码更加简洁和易于维护。在 base.html 中定义常用元素,例如网站的标头、页脚和导航栏等,并为每个页面单独定义内容。在需要修改网站结构时,你只需要修改 base.html 模板即可,无需对每个页面进行修改。
多页面跳转:
from flask import Flask,redirect,url_for
app = Flask(__name__)
@app.route('/admin')#定义一个admin页面#
def hello_admin():
return 'Hello Admin'
@app.route('/guest/<guest>')#定义一个guest/xxx页面,返回hello xxx as guest#
def hello_guest(guest):
return 'Hello %s as Guest' % guest
@app.route('/user/<name>')#定义一个user页面#
def hello_user(name):
if name =='admin':#如果是/user/admin,则返回到admin页面#
return redirect(url_for('hello_admin'))
else:
return redirect(url_for('hello_guest',guest = name))#如果不是,则返回到guest页面,并将name的输入值赋予给guest#
if __name__ == '__main__':
app.run(debug=True,threaded = True)
redirect函数代表重定向到指定url,url_for负责构建指定函数的url。
from flask import Flask,render_template,request
from werkzeug.wrappers.response import ResponseStream
app = Flask(__name__)
@app.route('/')
def student():
return render_template('index5.html')
@app.route('/result',methods = ['POST','GET'])#methods = ['POST','GET']表示可以处理post和get请求#
def result():
if request.method == 'POST':
rst = request.form#检测是否为post,如果是获取内容到rst#
return render_template("result5.html",result = rst)#模板文件将会使用该参数来展示数据#
if __name__ == '__main__':
app.run(debug=True,threaded = True)
-
POST 方法:用于向服务器提交数据,通常用于表单的提交。当用户在浏览器中填写表单并点击提交按钮时,会发送一个 POST 请求到服务器,将表单数据作为请求体发送给服务器。在 Flask 中,可以通过
request.form来获取 POST 请求中的表单数据。 -
GET 方法:用于从服务器获取数据,在浏览器地址栏中输入 URL 或者点击链接时,通常会发送一个 GET 请求到服务器。GET 请求将数据附加在 URL 的查询字符串中,可以通过
request.args来获取 GET 请求中的参数值。
注册结果html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<table border="1">
{% for key, value in result.items() %}
<tr>
<th>{{key}}</th>
<td>{{value}}</td>
</tr>
{% endfor %}
</table>
</body>
</html>
注册表单html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="/result" method="POST">
<p>Name <input type="text" name = "Name"></p>
<p>Physics <input type="text" name="Physics"></p>
<p>Chemistry <input type="text" name="chemistry"></p>
<p>Maths <input type="text" name="Mathematics"></p>
<p><input type="submit" value="submit"></p>
</form>
</body>
</html>


被折叠的 条评论
为什么被折叠?



