最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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ó)家法律
九江市| 珲春市| 翁牛特旗| 喀什市| 镇平县| 任丘市| 双城市| 阿拉善左旗| 景谷| 汉源县| 安塞县| 赤水市| 白玉县| 河源市| 金门县| 静乐县| 伊宁市| 南溪县| 乐清市| 和田市| 新邵县| 霞浦县| 安岳县| 六安市| 修水县| 沙坪坝区| 淳安县| 萨嘎县| 贵溪市| 东平县| 中超| 新田县| 若羌县| 亳州市| 松潘县| 邢台市| 巨野县| 合作市| 宁安市| 德州市| 红河县|