python - 在Django中显示mysql数据库的数据

标签 python mysql django

我尝试使用 Django 显示 Mysql 数据库中的数据。用户通过 addSubscriber.html 页面输入所需数据以保存在数据库中,并被重定向到“report.html”页面,其中显示表中的所有数据(在本例中为订阅者)。

这是我的文件: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)

表单.py

from .models import Subscribers
from django import forms


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

报告.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 %}

我提交表单时出现的错误是:

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/$']

即使这些数据是很久以前输入的,并且已经从数据库中删除,它们仍然显示在这里。

最佳答案

更改此行

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

return redirect('report')

在报告 View 中

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

并更改 html 中的这一行

{% for entries in Subscribers %}

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

其他tds也同样

关于python - 在Django中显示mysql数据库的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44849891/

相关文章:

php - 在 yii 中插入后在表上记录用户 session ID(不能将标量值用作数组)

Django 管理员自定义 ArrayField 小部件

python - VSCode "Python: Select interpreter"添加自定义路径

python - 从列表生成 wxPython 小部件组

python - 用于查找首字母缩略词并避免由该模式组成的单词的正则表达式

mysql - 更改mysql配置文件

mysql - 如何链接一个经销商的产品表和多个零售店的关系? mysql

Python Django : change font color for part of string found in another list

python - 在 Django 项目中的 Ubuntu 下创建文件夹并更改文件夹名称

python - 基于每个应用程序的 Django 身份验证