当django sqlite db更新时,尝试刷新html模板

时间:2014-04-14 15:20:31

标签: jquery ajax database django sqlite

我使用的是Django 1.6和sqlite3。我有一个包含投票分数和录入日期的文本条目数据库。

网页

在网页上,条目分类并显示在三个表格中;最新条目,最高投票条目和最低投票条目。我想继续将文本输入,投票和表格显示在一个html页面上。

条目代码

我的代码现在可以输入文本到数据库,起始投票为0,当前日期时间。目前这不使用表单,因为我被告知它对我想做的事情有点过分,而且表单似乎也更喜欢多个html模板页面。

没有表格

也许因为我没有使用表单,输入新文本并按回车键不会导致主视图刷新。此外,多人会使用该网站,因此当有人向数据库添加条目时,理想情况下会刷新。

我试图查看在条目进入数据库时​​我可以在何处以及如何插入代码进行刷新。也许这是一个命令,在视图中添加请求进来 - 但是我无法使数据可以呈现。

我对此很新,如果你能指出我正确的概念方向,我将不胜感激......

这是我拥有的;

网址

from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    url(r'^admin/', include(admin.site.urls)),
    url(r'^i/$', 'entries.views.index'),
    url(r'^add/$', 'entries.views.add'),

视图

from django.shortcuts import render
from django.http import HttpResponse
from entries.models import Entry
from django.db import models
from datetime import datetime
from django.utils import timezone

def index(request):
    context = {
      'latest_entry_list': Entry.objects.order_by('-pub_date')[:10],
      'high_entry_list': Entry.objects.order_by('-score')[:10],
      'low_entry_list': Entry.objects.order_by('score')[:10],
    }
    return render(request, 'entries/index.html', context);


def add(request):
    created_date = default=datetime.now()
    created_score = '0'
    created_text = request.GET.get('text')    
    e = Entry(text=created_text, score=created_score,pub_date=created_date)
    e.save()  
    return HttpResponse('done')

getit.js

console.log("hi from js");
$(document).ready(function() {
    $("#input").bind("keypress", function(e) {
    if (e.keyCode == 13) {
    var text = $("#input").val();       
    var args = {'text':text};       
    $.get("/add/", args).done(function(data) {
        console.log("message: " + data);
    });
    }       
 });    
});

的index.html

<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
</head>
<body>

<ul>
{% for entry in latest_entry_list %}
    <li><a href="/entries/{{ entry.id }}/">{{ entry.text }}&nbsp;&nbsp{{ entry.score }}</a></li>
{% endfor %}
</ul>

<ul>
{% for entry in high_entry_list %}
    <li><a href="/entries/{{ entry.id }}/">{{ entry.text }}&nbsp;&nbsp{{ entry.score }}</a></li>
{% endfor %}
</ul>

<ul>
{% for entry in low_entry_list %}
    <li><a href="/entries/{{ entry.id }}/">{{ entry.text }}&nbsp;&nbsp{{ entry.score }}</a></li>
{% endfor %}
</ul>

<style type="text/css" media="screen">
  div h2 span { color: #ff0000; }
  div span { color: #00ff00; }
  #box { width: 400px; height: 400px; }
  #h { color: #ff0000; }
</style>
<h3 id="h">title</h3>
<p>message: {{ text }}</p>
<input type="text" name="text" value="" id="input"/>
<script type="text/javascript" src="{{STATIC_URL}}getit.js"></script>

0 个答案:

没有答案