简体   繁体   English

在Django中显示数据格式的mysql数据库

[英]Display data form mysql database in Django

I have tried to display data from my Mysql database using Django. 我试图使用Django从Mysql数据库显示数据。 The user enters the required data through addSubscriber.html page to save in the database and is redirected to a page 'report.html' where all the data from the table (in this case subscribers) is displayed. 用户通过addSubscriber.html页面输入所需数据以保存在数据库中,并被重定向到页面'report.html',其中显示表中的所有数据(在本例中为订户)。

Here are my files: views.py 这是我的文件:views.py

from django.shortcuts import render, redirect
from django.contrib.auth.decorators import login_required
from django.views import generic
from .models import Subscribers
from .forms import addSubsForm


@login_required
def dashboard(request):
    user = request.user
    context = {'user': user}
    template = 'dashboard.html'
    return render(request, template, context)



@login_required
def addSubscriber(request):
    template = 'addSubscriber.html'

    if request.method == 'POST':
            form = addSubsForm(request.POST)
            if form.is_valid():
                f = form.save(commit=False)
                f.save(using='db2')
                data = Subscribers.objects.all()
                return redirect('report', {'entries': data})

    else:
            form = addSubsForm()

    return render(request, template, {'form': form})




@login_required
def report(request):
    context = locals()
    template = 'report.html'
    return render(request, template, context)

forms.py forms.py

from .models import Subscribers
from django import forms


class addSubsForm(forms.ModelForm):
    class Meta:
        model = Subscribers
        fields = '__all__'

report.html report.html

{%extends 'base.html'%}


{% block content %}

 <h2 class="page-header">Subscribers List</h2>


          <div class="table-responsive">
            <table class="table table-striped">
              <thead>
                <tr>
                  <th>Bill Number</th>
                  <th>Name</th>
                  <th>Area</th>
                  <th>Phone Number</th>
                  <th>Header</th>
                </tr>
              </thead>
              <tbody>
                <tr>{% for entries in Subscribers %}
                  <td>{{ entries.billNumber }}</td>
                  <td>{{ entries.name }}</td>
                  <td>{{ entries.area }}</td>
                  <td>{{ entries.phoneNumber }}</td>
                  <td>{{ entries.name }}</td>
                    {% endfor %}
                </tr>
              </tbody>
            </table>
          </div>
{% endblock %}

The error when ever I submit the form is: 我提交表单时的错误是:

NoReverseMatch at /dashboard/addSubscriber/
Reverse for 'report' with arguments '({'entries': <QuerySet [(1, u'Manish Ojha', u'Jirikhimti', u'9843003979', u'2000', u'21'), (2, u'Manish Ojha', u'Jirikhimti', u'9843003979', u'2000', u'1'), (3, u'Manish Ojha', u'Jirikhimti', u'9843003979', u'2000', u'2'), (4, u'Manish Ojha', u'Jirikhimti', u'9843003979', u'2000', u'3'), (5, u'Manish Ojha', u'Jirikhimti', u'9843003979', u'2000', u'4'), (6, u'Manish Ojha', u'Jirikhimti', u'9843003979', u'2000', u'5'), (7, u'Manish Ojha', u'Jirikhimti', u'9843003979', u'2000', u'6'), (8, u'Manish Ojha', u'Jiri', u'8989', u'989', u'27308472893478'), (9, u'Manish Ojha', u'Jiri', u'8989', u'989', u'27308472893478'), (10, u'Manish Ojha', u'Jiri', u'8989', u'989', u'1'), (11, u'Manish Ojha', u'Jiri', u'8989', u'989', u'1'), (12, u'Manish', u'jklj', u'89890', u'99089', u'8989'), (13, u'Manish', u'jklj', u'89890', u'99089', u'8989'), (14, u'Manish', u'jklj', u'89890', u'99089', u'8989'), (15, u'Manish', u'jklj', u'89890', u'99089', u'8989'), (16, u'Manish', u'jklj', u'89890', u'99089', u'8989'), (17, u'Manish', u'jklj', u'89890', u'99089', u'8989'), (18, u'sdf', u'sdf', u'sdf', u'sdf', u'sdf'), (19, u'sdf', u'sdf', u'sdf', u'sdf', u'sdf'), (20, u'sfdf', u'jh', u'jhj', u'hj', u'hj'), '...(remaining elements truncated)...']>}, 1)' and keyword arguments '{}' not found. 1 pattern(s) tried: ['dashboard/report/$']

Even these datas were entered a long time ago and already erased from the database they are still displayed here. 即使这些数据是很久以前输入的,但已经从数据库中删除,它们仍显示在此处。

change this line 改变这条线

return redirect('report', {'entries': data}, 1)

to

return redirect('report')

and in report view 并在报告视图中

@login_required
def report(request):
    data = Subscribers.objects.all()
    template = 'report.html'
    return render(request, template, {'entries' : data})

and change this line in the html 并在html中更改此行

{% for entries in Subscribers %}

to

{% for entry in entries %}
<td>{{ entry .billNumber }}</td>

same for other tds also 其他tds也一样

{% for entries in Subscribers %} 
<tr>
    <td>{{ entries.billNumber }}</td>
    <td>{{ entries.name }}</td>
    <td>{{ entries.area }}</td>
    <td>{{ entries.phoneNumber }}</td>
    <td>{{ entries.name }}</td>
</tr>
{% endfor %}

I think this was also done wrong. 我认为这也做错了。 Try my code and see if mine works 试试我的代码,看看我的作品是否有效

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM