开发实践5_project

要求:

(对作业要求的"Student"稍作了变换,表单名称为"Index"。)获得后台 Index 数据,作展示,要求使用分页器,包含上一页、下一页、当前页/总页。

结果:

① preparation (创建用户、app、注册、链接总路由等)

// 创建超级用户 terminal

python manage.py createsuperuser

// 8000端口admin

superuser login

( Create new app, install: )

terminal //

python manage.py startapp page_app

setting //

install

total url //

path('page/', include('page_app.urls', namespace="page")),

② 编写Index table,编写用于展示的views、sub-urls等

models //

python 复制代码
from django.db import models

class Index(models.Model):
    name = models.CharField(max_length=32, verbose_name="statistical index")
    category = models.CharField(max_length=32, verbose_name="application field")
    preference = models.FloatField(verbose_name="subjective recommendation degree")
    description = models.CharField(max_length=128, verbose_name="brief documentation", null=True)

    def __str__(self):
        return f"{self.name}_{self.category}"

    class Meta:
        verbose_name = "Index"
        verbose_name_plural = verbose_name + 'es'

    @classmethod
    def get_list(cls, **kwargs):
        filters = {}
        return cls.objects.filter(**filters)  # objects.all()

app admin 注册表单到admin主页,添加测试数据// //

python 复制代码
from django.contrib import admin

from page_app.models import Index

models = [
    Index,
]

admin.site.register(models)

views //

python 复制代码
from django.shortcuts import render
from django.core.paginator import Paginator, InvalidPage

from djangoProject.settings import PAGE_SIZE
from page_app.models import Index


def list_index(request):
    page_num = request.GET.get("page_num", default=1)  # 页码 可以通过/?page=k传参,路由与视图函数不必维护param
    indexes = Index.get_list()  # <queryset>
    paginator = Paginator(indexes, PAGE_SIZE)
    try:
        data = paginator.page(page_num)
    except InvalidPage:
        data = paginator.page(1)
    return render(request, "staticindex.html", {"data": data, "paginator": paginator})
    # 记得不要locals().减少缓存中的数据量。

setting //

设置分页大小

PAGE_SIZE = 3

templates //

相关推荐
计算机毕设定制辅导-无忧学长5 小时前
西门子 PLC 与 Modbus 集成:S7-1500 RTU/TCP 配置指南(一)
服务器·数据库·tcp/ip
程序员柳5 小时前
基于微信小程序的校园二手交易平台、微信小程序校园二手商城源代码+数据库+使用说明,layui+微信小程序+Spring Boot
数据库·微信小程序·layui
梦在深巷、5 小时前
MySQL/MariaDB数据库主从复制之基于二进制日志的方式
linux·数据库·mysql·mariadb
IT乌鸦坐飞机6 小时前
ansible部署数据库服务随机启动并创建用户和设置用户有完全权限
数据库·ansible·centos7
IT_10246 小时前
Spring Boot项目开发实战销售管理系统——数据库设计!
java·开发语言·数据库·spring boot·后端·oracle
祁思妙想7 小时前
八股学习(三)---MySQL
数据库·学习·mysql
惊骇世俗王某人7 小时前
1.MySQL之如何定位慢查询
数据库·mysql
秦歌6668 小时前
向量数据库-Milvus快速入门
数据库·milvus
Edingbrugh.南空9 小时前
Flink SQLServer CDC 环境配置与验证
数据库·sqlserver·flink
码不停蹄的玄黓9 小时前
MySQL分布式ID冲突详解:场景、原因与解决方案
数据库·分布式·mysql·id冲突