国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

基于python+django的二手商品交易平臺(tái)-二手商品供需系統(tǒng)

2023-07-17 08:38 作者:Tim數(shù)據(jù)工程師  | 我要投稿

項(xiàng)目簡(jiǎn)介

該項(xiàng)目是基于python的web類庫(kù)django開發(fā)的一套web網(wǎng)站,二手商品交易平臺(tái),給師弟開發(fā)的課程作業(yè)。大家在學(xué)習(xí)過(guò)程中,遇到問題可以github咨詢作者。

預(yù)覽展示

http://mask.gitapp.cn

源碼地址

https://github.com/geeeeeeeek/mask

開發(fā)步驟:?jiǎn)?dòng)項(xiàng)目

django-admin startproject mask

開發(fā)步驟:創(chuàng)建應(yīng)用

python3 manage.py startapp app

開發(fā)步驟:model設(shè)計(jì)

主要是對(duì)需求表Product進(jìn)行設(shè)計(jì),在此項(xiàng)目中,我們需要標(biāo)題、聯(lián)系人、電話等字段??蓞⒖糾odels.py文件。

設(shè)計(jì)字段如下:

class Product(models.Model): ? ?list_display = ("title", "type", "location") ? ?title = models.CharField(max_length=100,blank=True, null=True) ? ?type = models.IntegerField(default=0) ? ?pv = models.IntegerField(default=0) ? ?contact = models.CharField(max_length=10,blank=True, null=True) ? ?location = models.CharField(max_length=20,blank=True, null=True) ? ?phone = models.CharField(max_length=13, blank=True, null=True) ? ?weixin = models.CharField(max_length=50, blank=True, null=True) ? ?status = models.BooleanField(default=False) ? ?timestamp = models.DateTimeField(auto_now_add=True, null=True) ? ?expire = models.IntegerField(default=1)

開發(fā)步驟:業(yè)務(wù)編寫

本項(xiàng)目一共分為3個(gè)頁(yè)面,分別是列表頁(yè)、詳情頁(yè)、提交頁(yè)。

我們一一講解

首頁(yè)

首先是首頁(yè),它的模版位于templates/app/index.html 它主要是用來(lái)展示首頁(yè)內(nèi)容, 并提交搜索詞,到搜索接口,所有的接口都位于app/urls.py里面,如下

app_name = 'app'urlpatterns = [ ? ?path('index', views.IndexView.as_view(), name='index'), ? ?path('detail/<int:pk>', views.DetailView.as_view(), name='detail'), ? ?path('commit', views.CommitView.as_view(), name='commit') ]

我們?cè)O(shè)置首頁(yè)的路由為IndexView, 開始編寫IndexView的代碼。它的代碼非常簡(jiǎn)單:

class IndexView(generic.ListView): ? ?model = Product ? ?template_name = 'app/index.html' ? ?context_object_name = 'product_list' ? ?paginate_by = 15 ? ?c = None ? ?def get_context_data(self, *, object_list=None, **kwargs): ? ? ? ?context = super(IndexView, self).get_context_data(**kwargs) ? ? ? ?paginator = context.get('paginator') ? ? ? ?page = context.get('page_obj') ? ? ? ?page_list = get_page_list(paginator, page) ? ? ? ?context['c'] = self.c ? ? ? ?context['page_list'] = page_list ? ? ? ?return context ? ?def get_queryset(self): ? ? ? ?self.c = self.request.GET.get("c", None) ? ? ? ?if self.c: ? ? ? ? ? ?return Product.objects.filter(type=self.c).order_by('-timestamp') ? ? ? ?else: ? ? ? ? ? ?return Product.objects.filter(status=0).order_by('-timestamp')

詳情頁(yè)

我們?cè)賮?lái)開發(fā)詳情頁(yè),從urls.py中看到,詳情頁(yè)是由DetailView來(lái)實(shí)現(xiàn)的,我們來(lái)窺探它的全貌:

class DetailView(generic.DetailView): ? ?model = Product ? ?template_name = 'app/detail.html' ? ?def get_object(self, queryset=None): ? ? ? ?obj = super().get_object() ? ? ? ?return obj ? ?def get_context_data(self, **kwargs): ? ? ? ?context = super(DetailView, self).get_context_data(**kwargs) ? ? ? ?return context

它很簡(jiǎn)單,繼承了DetailView通用模板類來(lái)顯示詳情。

提交頁(yè)

最后再來(lái)看一下提交頁(yè),它是由CommitView來(lái)實(shí)現(xiàn)的。同樣是觀看代碼:

class CommitView(generic.CreateView): ? ?model = Product ? ?form_class = CommitForm ? ?template_name = 'app/commit.html' ? ?@ratelimit(key='ip', rate='2/m') ? ?def post(self, request, *args, **kwargs): ? ? ? ?was_limited = getattr(request, 'limited', False) ? ? ? ?if was_limited: ? ? ? ? ? ?messages.warning(self.request, "操作太頻繁了,請(qǐng)1分鐘后再試") ? ? ? ? ? ?return render(request, 'app/commit.html', {'form': CommitForm()}) ? ? ? ?return super().post(request, *args, **kwargs) ? ?def get_success_url(self): ? ? ? ?messages.success(self.request, "發(fā)布成功! ") ? ? ? ?return reverse('app:commit')

它是繼承自CreateView,因?yàn)槭莿?chuàng)建操作嘛,在post中,我們通過(guò)ratelimit來(lái)限制提交次數(shù),防止惡意提交。

運(yùn)行項(xiàng)目

python3 manage.py runserver


基于python+django的二手商品交易平臺(tái)-二手商品供需系統(tǒng)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
临漳县| 惠来县| 察雅县| 东至县| 绿春县| 鸡东县| 建平县| 浮梁县| 丹棱县| 井研县| 南康市| 宝山区| 石棉县| 惠东县| 承德市| 丽江市| 普定县| 广昌县| 庐江县| 永丰县| 马边| 千阳县| 延庆县| 定西市| 昔阳县| 石狮市| 天等县| 昭通市| 吉木萨尔县| 松溪县| 徐闻县| 阳谷县| 河东区| 克拉玛依市| 禄丰县| 永年县| 淮安市| 苍梧县| 剑阁县| 无锡市| 玉溪市|