python - 如何从 Django 数据库中填充下拉菜单
问题描述
我想从数据库中的数据创建两个下拉菜单。
在过去的几个小时里,我一直在努力解决这个问题,不知道如何解决它。我已经使用带有 sqlite3 的 Jupyter 将我的 CSV 文件导入到我的数据库中:
import pandas as pd
import sqlite3
lol = pd.read_csv('LeagueofLegends.csv')
del lol['Address']
path = '#path to directory'
cxn = sqlite3.connect(path + 'db.sqlite3')
cxn.cursor().executescript('drop table if exists lol;')
lol.to_sql('lol', cxn, index = False)
cxn.close()
据我所知,一切都很顺利,但现在我想从数据库中的数据中创建一些下拉菜单。在下面,我包含了一段数据。我要创建的两个下拉列表是 blueTeamTag 和 redTeamTag 下拉列表。我已经尝试了几个小时,但不知道如何做到这一点。
此外,blueTeamTag 和 redTeamTag 都包含重复项,我必须在将其放入下拉列表之前将其删除。
我还包含了我的views.py、models.py 和下拉菜单所在的HTML 脚本。
视图.py:
from django.shortcuts import render
from django.http import HttpResponse, HttpResponseRedirect
from .models import Lol
# Create your views here.
def start(request):
return render(request, 'start.html')
def uitleg(request):
return render(request, 'uitleg.html')
def choose_game(request):
bteams = Lol.blueteamtag
return render(request, 'choose-game.html', {
"bteams": bteams
})
模型.py:
from django.db import models
class Lol(models.Model):
league = models.TextField(db_column='League', blank=True, null=True) # Field name made lowercase.
year = models.IntegerField(db_column='Year', blank=True, null=True) # Field name made lowercase.
season = models.TextField(db_column='Season', blank=True, null=True) # Field name made lowercase.
type = models.TextField(db_column='Type', blank=True, null=True) # Field name made lowercase.
blueteamtag = models.TextField(db_column='blueTeamTag', blank=True, null=True) # Field name made lowercase.
bresult = models.IntegerField(db_column='bResult', blank=True, null=True) # Field name made lowercase.
rresult = models.IntegerField(db_column='rResult', blank=True, null=True) # Field name made lowercase.
redteamtag = models.TextField(db_column='redTeamTag', blank=True, null=True) # Field name made lowercase.
gamelength = models.IntegerField(blank=True, null=True)
golddiff = models.TextField(blank=True, null=True)
goldblue = models.TextField(blank=True, null=True)
bkills = models.TextField(db_column='bKills', blank=True, null=True) # Field name made lowercase.
btowers = models.TextField(db_column='bTowers', blank=True, null=True) # Field name made lowercase.
binhibs = models.TextField(db_column='bInhibs', blank=True, null=True) # Field name made lowercase.
bdragons = models.TextField(db_column='bDragons', blank=True, null=True) # Field name made lowercase.
bbarons = models.TextField(db_column='bBarons', blank=True, null=True) # Field name made lowercase.
bheralds = models.TextField(db_column='bHeralds', blank=True, null=True) # Field name made lowercase.
goldred = models.TextField(blank=True, null=True)
rkills = models.TextField(db_column='rKills', blank=True, null=True) # Field name made lowercase.
rtowers = models.TextField(db_column='rTowers', blank=True, null=True) # Field name made lowercase.
rinhibs = models.TextField(db_column='rInhibs', blank=True, null=True) # Field name made lowercase.
rdragons = models.TextField(db_column='rDragons', blank=True, null=True) # Field name made lowercase.
rbarons = models.TextField(db_column='rBarons', blank=True, null=True) # Field name made lowercase.
rheralds = models.TextField(db_column='rHeralds', blank=True, null=True) # Field name made lowercase.
bluetop = models.TextField(db_column='blueTop', blank=True, null=True) # Field name made lowercase.
bluetopchamp = models.TextField(db_column='blueTopChamp', blank=True, null=True) # Field name made lowercase.
goldbluetop = models.TextField(db_column='goldblueTop', blank=True, null=True) # Field name made lowercase.
bluejungle = models.TextField(db_column='blueJungle', blank=True, null=True) # Field name made lowercase.
bluejunglechamp = models.TextField(db_column='blueJungleChamp', blank=True, null=True) # Field name made lowercase.
goldbluejungle = models.TextField(db_column='goldblueJungle', blank=True, null=True) # Field name made lowercase.
bluemiddle = models.TextField(db_column='blueMiddle', blank=True, null=True) # Field name made lowercase.
bluemiddlechamp = models.TextField(db_column='blueMiddleChamp', blank=True, null=True) # Field name made lowercase.
goldbluemiddle = models.TextField(db_column='goldblueMiddle', blank=True, null=True) # Field name made lowercase.
blueadc = models.TextField(db_column='blueADC', blank=True, null=True) # Field name made lowercase.
blueadcchamp = models.TextField(db_column='blueADCChamp', blank=True, null=True) # Field name made lowercase.
goldblueadc = models.TextField(db_column='goldblueADC', blank=True, null=True) # Field name made lowercase.
bluesupport = models.TextField(db_column='blueSupport', blank=True, null=True) # Field name made lowercase.
bluesupportchamp = models.TextField(db_column='blueSupportChamp', blank=True, null=True) # Field name made lowercase.
goldbluesupport = models.TextField(db_column='goldblueSupport', blank=True, null=True) # Field name made lowercase.
bluebans = models.TextField(db_column='blueBans', blank=True, null=True) # Field name made lowercase.
redtop = models.TextField(db_column='redTop', blank=True, null=True) # Field name made lowercase.
redtopchamp = models.TextField(db_column='redTopChamp', blank=True, null=True) # Field name made lowercase.
goldredtop = models.TextField(db_column='goldredTop', blank=True, null=True) # Field name made lowercase.
redjungle = models.TextField(db_column='redJungle', blank=True, null=True) # Field name made lowercase.
redjunglechamp = models.TextField(db_column='redJungleChamp', blank=True, null=True) # Field name made lowercase.
goldredjungle = models.TextField(db_column='goldredJungle', blank=True, null=True) # Field name made lowercase.
redmiddle = models.TextField(db_column='redMiddle', blank=True, null=True) # Field name made lowercase.
redmiddlechamp = models.TextField(db_column='redMiddleChamp', blank=True, null=True) # Field name made lowercase.
goldredmiddle = models.TextField(db_column='goldredMiddle', blank=True, null=True) # Field name made lowercase.
redadc = models.TextField(db_column='redADC', blank=True, null=True) # Field name made lowercase.
redadcchamp = models.TextField(db_column='redADCChamp', blank=True, null=True) # Field name made lowercase.
goldredadc = models.TextField(db_column='goldredADC', blank=True, null=True) # Field name made lowercase.
redsupport = models.TextField(db_column='redSupport', blank=True, null=True) # Field name made lowercase.
redsupportchamp = models.TextField(db_column='redSupportChamp', blank=True, null=True) # Field name made lowercase.
goldredsupport = models.TextField(db_column='goldredSupport', blank=True, null=True) # Field name made lowercase.
redbans = models.TextField(db_column='redBans', blank=True, null=True) # Field name made lowercase.
class Meta:
managed = False
db_table = 'lol'
选择game.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{#Hier moet de gebruiker een game kiezen#}
<select name="bTeam" class="form-control">
{% for results in bteams %}
<option value="{{ results.id }}">{{ results.name }}</option>
{% endfor %}
</select>
</body>
</html>
提前致谢!
解决方案
推荐阅读
- java - Java Jpanel 现在出现了
- python-3.x - Python 情节。看不到第一个子图标题
- javascript - 使用 math.random 生成图片
- c++ - 找不到使用 Eigen3 和 CMake eigen3/Eigen/Core' 文件构建 C++ 代码的问题
- rust - 是否存在接受可能失败的谓词的 Iter::find() 等效项?
- if-statement - 在 PugJS 上添加“数据属性”的可选链接
- web - 低功耗显示器的视频编解码器?
- css - 如何创建实际上是固定宽度的 100% 宽度 div 的错觉(使用 bg 颜色)
- typescript - 在 TypeScript 生成的声明文件中,排除内部导出的类型
- bookdown - 如何将公式和 tikz 图放入 bookdown 表格单元格?