# Repl Django WebShow view.py
###### tags: `Python`
不同欄位各自搜尋
```python=
from django.shortcuts import render
from django.http import JsonResponse
from .models import WebShow
# Create your views here.
def index(request):
return render(request, 'hello.html', {
'data': "Hello Django ",
})
def showdata(request):
WebShow_list = WebShow.objects.all() # 把所有 WebShow 的資料取出來
context = {'WebShow_list': WebShow_list} # 建立 Dict對應到WebShow的資料,
return render(request, 'test.html', context)
def outputdata(data):
output = {
"number": data.number,
"name":data.name,
"photo":data.photo,
"style":data.style,
"level":data.level,
"color":data.color,
"cost":data.cost,
"effect":data.effect,
"soul":data.soul,
"attack":data.attack,
"content":data.content,
"created_at":data.created_at,
"date":data.date
}
return output
def inputcheck(inputdata,checkdata):
if checkdata in inputdata:
return inputdata.getlist(checkdata)
else :
return None
def showapi(request):
print(request.GET)
number = inputcheck(request.GET,'number')
name = inputcheck(request.GET,'name')
style = inputcheck(request.GET,'style')
level = inputcheck(request.GET,'level')
color = inputcheck(request.GET,'color')
cost = inputcheck(request.GET,'cost')
effect = inputcheck(request.GET,'effect')
soul = inputcheck(request.GET,'soul')
attack = inputcheck(request.GET,'attack')
results = []
try:
if number:
for num in number:
number_list = WebShow.objects.filter(number__icontains = num)
for number_data in number_list:
output = outputdata(number_data)
results.append(output)
if name:
for na in name:
name_list = WebShow.objects.filter(name__icontains = na)
for name_data in name_list:
output = outputdata(name_data)
results.append(output)
if style:
for sty in style:
style_list = WebShow.objects.filter(style__icontains = sty)
for style_data in style_list:
output = outputdata(style_data)
results.append(output)
if level:
for le in level:
level_list = WebShow.objects.filter(level__icontains = le)
for level_data in level_list:
output = outputdata(level_data)
results.append(output)
if color:
for col in color:
color_list = WebShow.objects.filter(color__icontains = col)
for color_data in color_list:
output = outputdata(color_data)
results.append(output)
if cost:
for co in cost:
cost_list = WebShow.objects.filter(cost__icontains = co)
for cost_data in cost_list:
output = outputdata(cost_data)
results.append(output)
if effect:
for eff in effect:
effect_list = WebShow.objects.filter(style__icontains = eff)
for effect_data in effect_list:
output = outputdata(effect_data)
results.append(output)
if soul:
for sou in soul:
soul_list = WebShow.objects.filter(soul__icontains = sou)
for soul_data in soul_list:
output = outputdata(soul_data)
results.append(output)
if attack:
for att in attack:
attack_list = WebShow.objects.filter(attack__icontains = att)
for attack_data in attack_list:
output = outputdata(attack_data)
results.append(output)
except:
pass
return JsonResponse({"status":True,"total":len(results),"results":results}, safe=False)
```