django+vue全

本篇写有部门和员工(为前后端开发)


django:

admin创建超级用户:

at 14:01:52 ❯ python manage.py createsuperuser  # 创建超级用户的命令c
用户名 (leave blank to use 'mac'): mmm
电子邮件地址: 
Password:        # 密码输入时,是看不到的
Password (again): 
密码长度太短。密码必须包含至少 8 个字符。
这个密码太常见了。
密码只包含数字。
Bypass password validation and create user anyway? [y/N]: y
Superuser created successfully.

项目准备:

创建项目:

​ django-admin startproject django14(项目名)

创建APP:

​ python manage.py startapp goods(APP名)

修改配置文件: settings.py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'rest_framework',  # drf框架
    'corsheaders',  # 跨域APP
    'branch'  # 自己的APP, 随着自己创建的APP名改变而改变
]

#  中间件
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'corsheaders.middleware.CorsMiddleware', # 添加跨域中间件
    'django.middleware.common.CommonMiddleware',
    # 'django.middleware.csrf.CsrfViewMiddleware',  # 关闭csrf验证
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

CORS_ORIGIN_ALLOW_ALL = True  # 允许所有源访问


# 指定图片上传的根路径时,media目录需要手动创建
MEDIA_URL = 'media/(文件名)'  # 配置后期图片资源展示的url前缀
MEDIA_ROOT = os.path.join(BASE_DIR, 'media(文件名)')  # 指定图片上传的根路径

创建子路由:(goods/urls.py)

python manage.py startapp app名

修改主路由:

from django.contrib import admin
from django.urls import path, include
from django.conf import settings		# 图片
from django.conf.urls.static import static	# 图片

urlpatterns = [
                  path('admin/', admin.site.urls),
                  path('', include('branch.urls')),  # 实现路由分发
              ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
# 上传的图片想要展示,需要做路由映射

模型类:

部门:部门名称

class Branch(models.Model):
    name = models.CharField(max_length=20, verbose_name='部门', unique=True)      # unique=True 去重

员工:员工名称、所属部门、职位、年龄、入职日期、证件照片

class Staff(models.Model):
    name = models.CharField(max_length=20, verbose_name='员工名称')
    title = models.CharField(max_length=10, verbose_name='职位')
    age = models.IntegerField(verbose_name='年龄')
    time = models.DateField(auto_now_add=True, verbose_name='入职日期')
    image = models.ImageField(upload_to='image/%y/%m/%d', verbose_name='证件照片')
    branch = models.ForeignKey(to=Branch, on_delete=models.CASCADE, verbose_name='所属部门')

DateField(auto_now_add=True, verbose_name=‘创建日期’)

DateField(auto_now=True, verbose_name=‘更新日期’)

生成迁移文件

python manage.py makemigrations

生成表

python manage.py migrate

序列化器

序列化器为了 简化 代码的编写过程

需要在自己在 子应用中,创建 序列化文件, 如 goods/serializers.py

from rest_framework.serializers import ModelSerializer
from branch.models import *


class BranchModelSerializer(ModelSerializer):
    class Meta:
        model = Branch
        fields = '__all__'


class StaffModelSerializer(ModelSerializer):
    class Meta:
        model = Staff
        fields = '__all__'

视图

具体的实现过程, 在子应用中的 views.py, 如 goods/views.py

部门
  • 添加 POST cate/ 表单数据
  • 展示 GET cate/
from rest_framework.response import Response
from rest_framework.views import APIView
from branch.serializers import *


# Create your views here.
# 分类
class BranchAPIView(APIView):
    # 添加    POST   cate/  表单数据
    def post(self, request):
        # 1. 获取参数
        data = request.data
        # 2. 创建序列化器对象
        ser = BranchModelSerializer(data=data)
        # 3. 校验
        ser.is_valid(raise_exception=True)
        # 4. 保存
        ser.save()
        # 5. 返回响应
        return Response(ser.data, status=201)

    # 展示   GET   cate/
    def get(self, request):
        # 1. 查询所有数据
        branchs = Branch.objects.all()
        # 2. 创建序列化器对象
        ser = BranchModelSerializer(branchs, many=True)
        # 3. 返回响应
        return Response(ser.data)

删除 DELETE cate/id/

class  
  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值