简介:
要创建一个能够录入球员、查看各个学院赛程以及执行球员转会的网页,你需要进行一系列步骤,包括前端和后端开发。以下是一个简单示例,使用Python的Flask框架和HTML来实现这个功能:
1.设置环境和安装Flask:
(1)安装虚拟环境工具:
python3 -m venv myenv
这将在当前目录创建一个myenv
的虚拟环境\
(2)激活虚拟环境
myenv\Scripts\activate
这是在Windows中的命令
(3)安装flask
pip install flask
(4)检验
python
import flask
flask.__version__
2.创建flask应用
(1)创建一个名为app.py
的文件
python
Copy code
from flask import Flask, render_template, request, redirect, url_for
app = Flask(__name__)
# 创建一个空的球员列表和学院赛程
players = []
schedules = {
'College A': ['Match 1', 'Match 2', 'Match 3'],
'College B': ['Match 4', 'Match 5', 'Match 6'],
# 添加更多学院和赛程
}
@app.route('/')
def home():
return render_template('index.html', players=players, schedules=schedules)
@app.route('/add_player', methods=['POST'])
def add_player():
name = request.form.get('name')
college = request.form.get('college')
players.append({'name': name, 'college': college})
return redirect(url_for('home'))
@app.route('/transfer_player', methods=['POST'])
def transfer_player():
player_name = request.form.get('player_name')
target_college = request.form.get('target_college')
for player in players:
if player['name'] == player_name:
player['college'] = target_college
return redirect(url_for('home'))
if __name__ == '__main__':
app.run(debug=True)
创建HTML模板:
在项目目录中创建一个名为templates的文件夹,然后在其中创建一个名为index.html的HTML模板文件。这个模板文件用于显示球员信息、学院赛程和转会表单。
<!DOCTYPE html>
<html>
<head>
<title>学院赛程</title>
</head>
<body>
<h1>学院赛程</h1>
<h2>球员信息</h2>
<ul>
{% for player in players %}
<li>{{ player.name }} - {{ player.college }}</li>
{% endfor %}
</ul>
<h2>赛程</h2>
<ul>
{% for college, matches in schedules.items() %}
<li>{{ college }}:
<ul>
{% for match in matches %}
<li>{{ match }}</li>
{% endfor %}
</ul>
</li>
{% endfor %}
</ul>
<h2>录入球员</h2>
<form method="post" action="/add_player">
<label for="name">姓名:</label>
<input type="text" name="name" required>
<br>
<label for="college">学院:</label>
<select name="college" required>
<option value="College A">College A</option>
<option value="College B">College B</option>
<!-- 添加更多学院选项 -->
</select>
<br>
<input type="submit" value="添加球员">
</form>
<h2>球员转会</h2>
<form method="post" action="/transfer_player">
<label for="player_name">球员姓名:</label>
<input type="text" name="player_name" required>
<br>
<label for="target_college">目标学院:</label>
<select name="target_college" required>
<option value="College A">College A</option>
<option value="College B">College B</option>
<!-- 添加更多学院选项 -->
</select>
<br>
<input type="submit" value="执行转会">
</form>
</body>
</html>
4.运行应用程序
在终端中运行应用程序:
python app.py
你的Web应用程序将在本地服务器上运行,你可以通过浏览器访问 http://localhost:5000/ 来访问应用程序。现在,你可以录入球员信息、查看学院赛程并执行球员转会。
5.优化
为了将录入球员和添加转会功能放在子网页中,你可以使用Flask的蓝图(Blueprints)来组织你的应用程序。蓝图允许你将不同功能模块划分到不同的子网页中,使你的应用程序更有组织性。以下是如何将这两个功能分别放在不同的子网页中的步骤:
1. 创建蓝图:
首先,创建两个独立的蓝图,一个用于录入球员,另一个用于添加转会。在你的应用目录中创建两个新的Python文件,例如player_bp.py 和 transfer_bp.py。
(1) 在 player_bp.py 中创建录入球员的蓝图:
from flask import Blueprint, render_template, request, redirect, url_for
player_bp = Blueprint('player_bp', __name__)
players = []
@player_bp.route('/add_player', methods=['POST'])
def add_player():
name = request.form.get('name')
college = request.form.get('college')
players.append({'name': name, 'college': college})
return redirect(url_for('home'))
# 你可以在这里添加其他与球员相关的路由
(2) 在 transfer_bp.py 中创建添加转会的蓝图:
from flask import Blueprint, render_template, request, redirect, url_for
transfer_bp = Blueprint('transfer_bp', __name__)
@transfer_bp.route('/transfer_player', methods=['POST'])
def transfer_player():
player_name = request.form.get('player_name')
target_college = request.form.get('target_college')
for player in players:
if player['name'] == player_name:
player['college'] = target_college
return redirect(url_for('home'))
# 你可以在这里添加其他与转会相关的路由
2. 更新主应用:
在主应用 (app.py) 中,导入这两个蓝图并将它们注册到应用中:
from flask import Flask, render_template
from player_bp import player_bp
from transfer_bp import transfer_bp
app = Flask(__name)
# 创建一个空的学院赛程
schedules = {
'College A': ['Match 1', 'Match 2', 'Match 3'],
'College B': ['Match 4', 'Match 5', 'Match 6'],
# 添加更多学院和赛程
}
app.register_blueprint(player_bp)
app.register_blueprint(transfer_bp)
# 剩余的代码保持不变
3. 更新HTML模板:
在你的HTML模板中,相应地更新表单的 action 属性,以匹配子蓝图的路由路径。例如,录入球员的表单的 action 属性可以设置为 url_for('player_bp.add_player')
,而添加转会的表单的 action 属性可以设置为 url_for('transfer_bp.transfer_player')
。
4. 运行应用程序:
运行主应用程序 (app.py) 如下:
python app.py
你的Web应用程序现在应该具有两个独立的子网页,分别用于录入球员和执行球员转会。这使你的应用程序更有组织性并且容易扩展。