Python开发小型网页版CRM管理系统,求推荐Web前后端框架,后端用Django还需要单独的前端框架吗?

Python3,新手,打算业余时间开发一些 CRM 系统练练手,有推荐的前后端框架吗?简单看了下 Django 是不是用了之后前端都不需要单独的框架了?。。
Python开发小型网页版CRM管理系统,求推荐Web前后端框架,后端用Django还需要单独的前端框架吗?

15 回复

前后端分离?后台管理的应用直接上 vue/angular 都是可以的。


Django本身就是一个“全栈”框架,自带强大的模板引擎和ORM,完全可以用来开发小型CRM。如果你追求快速开发、前后端逻辑紧密耦合,直接用Django模板(Django Templates)写前端页面是最直接、最省事的选择。它的模板语言能方便地嵌入后端数据,用Bootstrap这类CSS框架套一下,一个功能完整的管理后台很快就能搭起来。

但是,如果你希望前端有更丰富的交互(比如单页面应用SPA的体验、复杂的表单验证、动态数据更新),或者你团队里前后端开发是分离的,那单独引入一个前端框架会更好。这时,Django就主要扮演提供REST API的后端角色(常用Django REST framework)。

所以,需不需要单独的前端框架,完全取决于你对前端交互复杂度的要求。

1. 纯Django方案(推荐给追求简单快捷的小项目): 直接用Django模板。新建一个customers的app,模型、视图、模板都在一起。

# models.py
from django.db import models

class Customer(models.Model):
    name = models.CharField(max_length=100)
    email = models.EmailField()
    phone = models.CharField(max_length=20)
    created_at = models.DateTimeField(auto_now_add=True)

# views.py
from django.views.generic import ListView
from .models import Customer

class CustomerListView(ListView):
    model = Customer
    template_name = 'customers/customer_list.html'
    context_object_name = 'customers'

# urls.py (app level)
from django.urls import path
from .views import CustomerListView

urlpatterns = [
    path('', CustomerListView.as_view(), name='customer_list'),
]

# customers/customer_list.html
<!DOCTYPE html>
<html>
<head>
    <title>客户列表</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container mt-4">
    <h1>客户管理</h1>
    <table class="table">
        <thead><tr><th>姓名</th><th>邮箱</th><th>电话</th><th>创建时间</th></tr></thead>
        <tbody>
        {% for customer in customers %}
        <tr>
            <td>{{ customer.name }}</td>
            <td>{{ customer.email }}</td>
            <td>{{ customer.phone }}</td>
            <td>{{ customer.created_at }}</td>
        </tr>
        {% endfor %}
        </tbody>
    </table>
</div>
</body>
</html>

2. Django + 前端框架方案(适合需要更好交互体验的项目): 用Django REST framework(DRF)提供API,前端用Vue.js/React等框架来调用。

# serializers.py
from rest_framework import serializers
from .models import Customer

class CustomerSerializer(serializers.ModelSerializer):
    class Meta:
        model = Customer
        fields = '__all__'

# api_views.py
from rest_framework import generics
from .models import Customer
from .serializers import CustomerSerializer

class CustomerListCreateAPIView(generics.ListCreateAPIView):
    queryset = Customer.objects.all()
    serializer_class = CustomerSerializer

前端用Vue.js(示例)通过axios调用/api/customers/获取数据并渲染。

总结:想要快、功能简单就用纯Django;想要前端体验好、前后端分离就加个前端框架。

用了 Django 你连开发都可以省了…

管理系统用毛线单页面框架写,直接 JQ 就好了。最讨厌管理系统写成单页面,我想看这个页面的信息,又想去另一个页面操作东西这是很常有的事情

对对对 我公司现有的也是 死蠢得要死 做的系统看来是完全没有人用过的(很多地方过于幼稚,完全不可能作为常用软件,但是本身又是极为常用)

集成 boostrap3 就够你用了

VUE+XADMIN+django-rest-framework

手机访问的话,每个模块可以弄成 spa

新手 django 还是用 py2 吧,我知道肯定很多人要来喷我了,我先逃了

Dj 下一个大版本都不支持 Py2 了…… 这样建议等以后 lz 回来喷你

网上教程全是用 py2 的,楼主新手让他自己去悟吗,溜了溜了

我觉得 SPA 不适合 CMS,多页面那种挺好的。

呃,这倒也是啊…… py3 只能尽量看英文资料或买书看了……

同#2,安利一下 flask 哈

不错 学习一下 新手很吃力吧搞这个 多学习 我也去学学

回到顶部