用 Python 和 Django 搭建一个校园二手信息发布平台,感兴趣的童鞋来看看哈

最近在学 Django ,搭建了一个校园二手交易平台。有兴趣的童鞋看看哈

校园二手信息发布平台 github 地址: https://github.com/starbt/flea_market


用 Python 和 Django 搭建一个校园二手信息发布平台,感兴趣的童鞋来看看哈
23 回复

丑哭了,能美化下?
随便用个前端框架不至于啊


我最近也在用Django做类似的项目,可以分享一些核心代码结构。

首先创建Django项目和应用:

django-admin startproject campus_market
cd campus_market
python manage.py startapp marketplace

核心模型设计(marketplace/models.py):

from django.db import models
from django.contrib.auth.models import User

class Category(models.Model):
    name = models.CharField(max_length=50)
    
class Item(models.Model):
    STATUS_CHOICES = [
        ('available', '可购买'),
        ('sold', '已售出'),
        ('reserved', '已预订'),
    ]
    
    title = models.CharField(max_length=200)
    description = models.TextField()
    price = models.DecimalField(max_digits=10, decimal_places=2)
    category = models.ForeignKey(Category, on_delete=models.CASCADE)
    seller = models.ForeignKey(User, on_delete=models.CASCADE)
    status = models.CharField(max_length=20, choices=STATUS_CHOICES, default='available')
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)
    contact_phone = models.CharField(max_length=20)
    
class ItemImage(models.Model):
    item = models.ForeignKey(Item, related_name='images', on_delete=models.CASCADE)
    image = models.ImageField(upload_to='item_images/')

基本的视图(marketplace/views.py):

from django.shortcuts import render, get_object_or_404
from django.contrib.auth.decorators import login_required
from .models import Item, Category
from .forms import ItemForm

def item_list(request):
    items = Item.objects.filter(status='available').order_by('-created_at')
    return render(request, 'marketplace/item_list.html', {'items': items})

@login_required
def create_item(request):
    if request.method == 'POST':
        form = ItemForm(request.POST, request.FILES)
        if form.is_valid():
            item = form.save(commit=False)
            item.seller = request.user
            item.save()
            return redirect('item_detail', pk=item.pk)
    else:
        form = ItemForm()
    return render(request, 'marketplace/create_item.html', {'form': form})

URL配置(marketplace/urls.py):

from django.urls import path
from . import views

urlpatterns = [
    path('', views.item_list, name='item_list'),
    path('item/<int:pk>/', views.item_detail, name='item_detail'),
    path('create/', views.create_item, name='create_item'),
    path('category/<int:category_id>/', views.category_items, name='category_items'),
]

表单(marketplace/forms.py):

from django import forms
from .models import Item, ItemImage

class ItemForm(forms.ModelForm):
    class Meta:
        model = Item
        fields = ['title', 'description', 'price', 'category', 'contact_phone']
        widgets = {
            'description': forms.Textarea(attrs={'rows': 4}),
        }

class ImageForm(forms.ModelForm):
    class Meta:
        model = ItemImage
        fields = ['image']

建议先实现基础CRUD功能再考虑扩展。

看漏了没想到你已经用了 bootstarp ,可是为什么看上去像是自己写的 css

跟我以前在大学时搭的二手信息平台几乎一样啊,包括外观。记得当时是参考了 csdn 上一个博主的 django 购物教程😂

用上 bootstrap 这种框架,不需要自定义什么样式,只是把元素对齐就可以获得一个不错的效果。整齐一些会有很大的改善。

这 UI 不就是华科二手街么?

你们项目需要一个设计师(虽然这类东西很常见)

真是美哭了 😂

没有必要太打击。对 表示一下鼓励!

人家这不过就是学 Django 做个 demo 分享一下,不能按 production 的要求去要求。

不过大家的意见,其实也很中肯。

加油吧!

很棒,如果使用的 Python3 我都想加到我的网站上去
可以交流一下哈 www.nextsecond.cn

比我第一次做的网站好多了

也比我第一次做的网站好多了。。

我做的那个二手平台跟题主做的差多了,无论是前台还是后台功能,楼主可以的。

lz 既然用了 bootstrap, 那么 form.py 里 field 属性的 widget 的 attr 可以加 bootstrap 的表单 class 啊 (form-control) ,更和谐
https://github.com/starbt/flea_market/blob/master/market/forms.py#L20L26

谢 LZ,已 star,学习学习。

UI 丑爆了…

注册页面设计的不错。 有个小错误,用户名输入框的 placeholder ,用于登陆请牢记, 应该是登录

这种平台很适合卡片式布局,电脑和数码配件那里,产品都挤在一起了,至少留点空白吧。在 v2 发作品, ui 被吐糟是常事,这没什么, lz 加油

你好,能分享下那篇学习的文章吗?我也想学习下

本项目是用 pyhton +django 搭建的一个校园二手市场信息发布平台

回到顶部