Python开发小型网页版CRM管理系统,求推荐Web前后端框架,后端用Django还需要单独的前端框架吗?
Python3,新手,打算业余时间开发一些 CRM 系统练练手,有推荐的前后端框架吗?简单看了下 Django 是不是用了之后前端都不需要单独的框架了?。。
Python开发小型网页版CRM管理系统,求推荐Web前后端框架,后端用Django还需要单独的前端框架吗?
前后端分离?后台管理的应用直接上 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 哈
不错 学习一下 新手很吃力吧搞这个 多学习 我也去学学

