首页 > 解决方案 > 在 HTML 中使用 Django 框架查询 MYSQL

问题描述

我正在使用带有 google api + MYSql 的 Django 框架构建一个站点。目前,我将所有数据条目的纬度和经度从我的 dB 显示到热图图层上。

我需要能够过滤我的数据以优化我正在显示的内容。例如 - 我想按“Slip”和“trip”等类型过滤HazardInside.title

此过滤器需要能够同时过滤许多其他要求,例如日期和天气条件。例如 title="Slip" + weather="Wet" + (dd/mm/yy - dd/mm/yy) 日期之间

我当前的问题是成功创建了一个视图,该视图从我的 dB 请求新数据并将其解析到我的 HTML 页面。

模型.py

class HazardInside(models.Model):

    title = models.CharField(max_length=50)
    description = models.CharField(max_length=250)
    incident_date = models.DateField(auto_now=False)
    lat = models.FloatField(max_length=25, default=0.00000)
    lng = models.FloatField(max_length=25, default=0.00000)
    room_number = models.CharField(max_length=25)
    floor = models.CharField(max_length=10)

    def __unicode__(self):
        return self.title


class InjuryInside(models.Model):

    title = models.CharField(max_length=50)
    description = models.CharField(max_length=250)
    incident_date = models.DateField(auto_now=False)
    lat = models.FloatField(max_length=25, default=0.00000)
    lng = models.FloatField(max_length=25, default=0.00000)
    room_number = models.CharField(max_length=25)
    floor = models.CharField(max_length=10)

    def __unicode__(self):
        return self.title

视图.py

from django.shortcuts import render, HttpResponse
from qutheatmap.models import Markers, HazardInside, InjuryInside
from django.template import RequestContext
from django.shortcuts import render_to_response

def home(request):
    marker = Markers.objects.all()
    hazardinsides = HazardInside.objects.all()
    injuryinsides = InjuryInside.objects.all()

    mapdata = {
        'markers': marker,
        'hazardinsides': hazardinsides,
        'injuryinsides': injuryinsides
    }

    return render(request, 'heatmap/map.html', mapdata)

def search(request):
    query = request.GET.get('type')
    try:
        query = char(query)
    except ValueError:
        query = None
        hazardinsides = None
    if query:
        hazardinsides = HazardInside.objects.get(title=query)
    context = RequestContext(request)

    mapdata = {
        'markers': marker,
        'hazardinsides': hazardinsides,
        'injuryinsides': injuryinsides
    }

    return render_to_response('heatmap/map.html', {"hazardinsides": hazardinsides,}, context_instance=context)

在我的html中

<form method="get" action="http://localhost:8000/qutheatmap/">
  Search:<input type="text" name="type" id="id_q" value="{{ query }}"/>
  <input type="submit" value="Search" />
</form>

我用我有限的 Django 知识尝试了几种不同的方法,但无济于事,例如:

  1. Django 表单查询数据库(模型)
  2. 使用模型表单查询 django DB

编辑:

网址

from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^$', views.home),
    url(r'^$', views.search),
]

网址配置

from django.contrib import admin
from django.conf.urls import url, include
from qutheatmap import views

urlpatterns = [
    url(r'qutheatmap/', include('qutheatmap.urls')),
]

标签: pythonmysqldjango

解决方案


推荐阅读