05 读取数据库数据

  • 获取全部记录
    • 实现一个函数,来处理sales/customers/访问请求,返回数据库中customer表所有记录
    •  # sales.views.py
      1
      from django.shortcuts import render 2 from django.http import HttpResponse 3 # 导入Customer 对象定义 4 from common.models import Customer 5 6 # sails.views 7 def list_orders(request): 8 return HttpResponse('路由子表:下面是系统中的所有订单信息') 9 10 11 def listcustomers(request): 12 # 返回一个 QuerySet对象,包含所有的表记录 13 # 每条表记录都是一个dict对象 14 # key 是字段名, value 是字段值 15 # objects是用来操作数据库的Manager接口 16 qs = Customer.objects.values() 17 18 # 定义返回给浏览器的字符串 19 retStr = '' 20 for customer in qs: 21 for name, value in customer.items(): 22 retStr += f'{name} : {value} | ' 23 # 一条记录结束后加一个<br>换行 24 retStr += '<br>' 25 26 return HttpResponse(retStr)
    •  1 # urls 总路由
       2 from django.contrib import admin
       3 from django.urls import path, include
       4 
       5 urlpatterns = [
       6     path('admin/', admin.site.urls),
       7     # 全路由
       8     # path('sales/orders/', list_orders),
       9     # 路由子表
      10     path('sales/', include('sales.urls')),
      11 ]
    • 1 # sales.urls 子路由
      2 from django.urls import path
      3 from sales.views import list_orders, listcustomers
      4 
      5 urlpatterns = [
      6     path('orders/', list_orders),
      7     path('customers/', listcustomers)
      8 ]
    • 浏览器地址栏输入:http://127.0.0.1/sales/customers/
    • 显示结果如下:

      image

      image

  • 过滤条件
    •  1 # sales.views.py
       2 from django.shortcuts import render
       3 from django.http import HttpResponse
       4 # 导入Customer 对象定义
       5 from common.models import Customer
       6 
       7 
       8 def list_orders(request):
       9     return HttpResponse('路由子表:下面是系统中的所有订单信息')
      10 
      11 
      12 def listcustomers(request):
      13     # 返回一个 QuerySet对象,包含所有的表记录
      14     # 每条表记录都是一个dict对象
      15     # key 是字段名, value 是字段值
      16     # objects是用来操作数据库的Manager接口
      17     qs = Customer.objects.values()
      18 
      19     # 检查url中是否有参数phonenumber
      20     ph = request.GET.get('phonenumber',None)
      21 
      22     # 如果有,添加过滤条件
      23     if ph:
      24         qs = qs.filter(phonenumber=ph)
      25 
      26     # 定义返回给浏览器的字符串
      27     retStr = ''
      28     for customer in qs:
      29         for name, value in customer.items():
      30             retStr += f'{name} : {value} | '
      31         # 一条记录结束后加一个<br>换行
      32         retStr += '<br>'
      33 
      34     return HttpResponse(retStr)
    • image

posted @ 2025-12-05 00:45  理想赵雷  阅读(4)  评论(0)    收藏  举报