使用django-tables2展示HTML表

作为不擅长前端的Django初学者,如何能够美观展示HTML table是一个头疼的事。

虽然django很容易实现查询表格并展示,但是简陋的table显得很不专业。

django-tables2 是一个创建HTML tables的app,简化了对样式等技术的开发要求。

本文是官方手册的摘要,原文非常简练,以快速完成项目工作为目标。

  • 安装django-tables2

pip install django-tables2

在app中使用django-tables2

  • 创建Django app (这里命名是tutorial)

python manage.py startapp tutorial
  • 在项目的settings.pyINSTALLED_APPS中添加django_tables2turorial

  • tutorial/models.py中添加model

# tutorial/models.py
class Person(models.Model):
    name = models.CharField(max_length=100, verbose_name='full name')
  • 使用以下命令创建数据库表

python manage.py makemigrations tutorial
python manage.py migrate tutorial
  • 通过django shell添加数据库表内容

  • 处理Person查询集的视图

  • 创建模板

以上完成后可以看到一个简单的页面 http://localhost:8000/people/

下面将开始真正的Table定制

  • 为了能够定义一个定制的查询页面,首先定义一个Table类:

  • 然后配置view中的table

使用RequestConfig自动从reuqest.GET取出值并相应过更新表格。这样数据就会整齐和页面化。

  • 然后将查询集(queryset)传递给render_table而不是传递给table instance:

现在就可以看到一个bootstrap3 stylesheet的表单了:

django-tables2表单样例

参考

Last updated

Was this helpful?