Django view 实现商品列表页
来自CloudWiki
视图层views_base
vi apps/goods/views_base.py
# -*- coding: utf-8 -*- __author__ = 'bobby' from django.views.generic.base import View from goods.models import Goods # from django.views.generic import ListView class GoodsListView(View): def get(self, request): """ 通过django的view实现商品列表页 :param request: :return: """ json_list = [] goods = Goods.objects.all()[:10] for good in goods: json_dict = {} json_dict["name"] = good.name json_dict["category"] = good.category.name json_dict["market_price"] = good.market_price json_list.append(json_dict) import json from django.http import HttpResponse, JsonResponse return HttpResponse(json.dumps(json_list),content_type="application/json")
路由urs.py
[root@localhost mxshop]# cd mxshop
[root@localhost mxshop]# pwd
/root/mxshop/mxshop
vi urls.py
from django.conf.urls import url from django.contrib import admin import xadmin from mxshop.settings import MEDIA_ROOT from django.views.static import serve from goods.views_base import GoodsListView urlpatterns = [ url(r'^xadmin/', xadmin.site.urls), url(r'^media/(?P<path>.*)$', serve, {"document_root": MEDIA_ROOT}), url(r'goods/$',GoodsListView.as_view(), name="goods-list") ]
测试
浏览器打开:http://10.0.0.30:8000/goods/
[{"name": "\u65b0\u9c9c\u6c34\u679c\u751c\u871c\u9999\u8106\u5355\u679c\u7ea6800\u514b", "category": "\u6839\u830e\u7c7b", "market_price": 232.0}, {"name": "\u7530\u7136\u725b\u8089\u5927\u9ec4\u74dc\u6761\u751f\u9c9c\u725b\u8089\u51b7\u51bb\u771f\u7a7a\u9ec4\u725b", "category": "\u6d77\u9c9c\u6c34\u4ea7", "market_price": 106.0}, {"name": "\u9163\u7545\u5bb6\u5ead\u83f2\u529b\u725b\u639210\u7247\u6fb3\u6d32\u751f\u9c9c\u725b\u8089\u56e2\u8d2d\u5957\u9910", "category": "\u53f6\u83dc\u7c7b", "market_price": 286.0}, {"name": "\u65e5\u672c\u849c\u84c9\u7c89\u4e1d\u6247\u8d1d270\u514b6\u53ea\u88c5", "category": "\u6839\u830e\u7c7b", "market_price": 156.0}, {"name": "\u5185\u8499\u65b0\u9c9c\u725b\u80891\u65a4\u6e05\u771f\u751f\u9c9c\u725b\u8089\u706b\u9505\u98df\u6750", "category": "\u6d77\u9c9c\u6c34\u4ea7", "market_price": 106.0}, {"name": "\u4e4c\u62c9\u572d\u8fdb\u53e3\u725b\u8089\u5377\u7279\u7ea7\u80a5\u725b\u5377", "category": "\u8304\u679c\u7c7b", "market_price": 90.0}, {"name": "\u4e94\u661f\u773c\u8089\u725b\u6392\u5957\u99108\u7247\u88c5\u539f\u5473\u539f\u5207\u751f\u9c9c\u725b\u8089", "category": "\u8fdb\u53e3\u751f\u9c9c", "market_price": 150.0}, {"name": "\u6fb3\u6d32\u8fdb\u53e3120\u5929\u8c37\u9972\u725b\u4ed4\u9aa84\u4efd\u539f\u5473\u751f\u9c9c", "category": "\u6d77\u9c9c\u6c34\u4ea7", "market_price": 31.0}, {"name": "\u6f6e\u9999\u6751\u6fb3\u6d32\u8fdb\u53e3\u725b\u6392\u5bb6\u5ead\u56e2\u8d2d\u5957\u991020\u7247", "category": "\u83cc\u83c7\u7c7b", "market_price": 239.0}, {"name": "\u7231\u98df\u6d3e\u5185\u8499\u53e4\u547c\u4f26\u8d1d\u5c14\u51b7\u51bb\u751f\u9c9c\u725b\u8171\u5b50\u80891000g", "category": "\u6839\u830e\u7c7b", "market_price": 202.0}]