1.DjangoRestFramework【前后端分离项目搭建】

news2024/9/20 5:28:48

1.使用cmd创建项目

在你需要创建项目的文件夹中打开cmd,进入对应的Django的虚拟环境中输入下面语句:

django-admin startproject drfproject

然后使用pycharm打开项目

2.创建子apps

在tirminal中输入:

python manage.py startapp user
python manage.py startapp shop

3.注册子引用

进入setting中注册子应用:
在这里插入图片描述

4.在user的model中写入user对象

因为Django有自带用户管理,但是中国人的user管理习惯于外国人不同应该要重新进行修改,如果在项目一开始的时候没有创建user对象的话,则就需要看我的另外一个教程,里面有解决方案;
model.py:

class User(AbstractUser):
    mobile = models.CharField(max_length=15, unique=True, verbose_name="手机号码")
    avatar = models.ImageField(upload_to="avatar", null=True, blank=True, verbose_name="用户头像")
    wxchat = models.CharField(max_length=64, default=True, blank=True, verbose_name="微信号")

    class Meta:
        db_table = "drf_user"
        verbose_name = "用户信息"
        verbose_name_plural = verbose_name

为了便于后面的drf学习,我们创建了shop模型:

from django.db import models

# 创建类型对象
class Category(models.Model):
    name=models.CharField(max_length=20,verbose_name="分类名")
    def __str__(self):
        return self.name

    class Meta:
        db_table = "category"
        verbose_name = "商品类型"
        verbose_name_plural = verbose_name

# 创建商品对象
class Goods(models.Model):
    name=models.CharField(max_length=100,verbose_name="商品名称")
    desc=models.CharField(max_length=100,null=True,verbose_name="商品描述")
    def __str__(self):
        return self.name
    category=models.ForeignKey(Category,on_delete=models.CASCADE,verbose_name="分类")

    class Meta:
        db_table = "goods"
        verbose_name = "商品信息"
        verbose_name_plural = verbose_name

5.进行数据迁移

python manage.py makemigrations
python manage.py migrate

6.创建一个超级管理员用户

因为Django自带一个管理系统,我可以创建一个超级管理员用户,直接对我们创建的数据进行管理:
在终端中输入:

python manage.py createsuperuser

user:root
password:123456
其他的输入直接可以跳过,然后y就创建一个超级管理员用户了.

7.将对象注册到admin中

点击shop目录下的admin,然后注册:

from django.contrib import admin

from shop.models import Category, Goods

# Register your models here.
admin.site.register(Category)
admin.site.register(Goods)

点击 user目录下的admin,然后注册:

admin.site.register(User)

8.运行admin程序

在Django提供的链接后面加一个admin,即可进入admin系统

http://127.0.0.1:8000/admin/

即可看到下面的页面:
在这里插入图片描述

8.在总路由中引入子路由

在子app的目录下面创建urls.py文件:

from django.conf.urls import url
from . import views

# 设置app的名字
app_name="shop"

urlpatterns = [
    url(r'^$', views.index,name='index'),
]

在总路由里面添加子路由:
drfproject下面的urls

urlpatterns = [
    path('admin/', admin.site.urls),
    path('shop/', include('shop.urls',namespace='shop')),

]

此时的Django项目已经搭建完毕了,后续接着讲解如何使用drf

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/197223.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

博途1200PLC/1500PLCMODBUS从站通信应用(MB_SLAVE指令)

博途PLC作为MODBUS主站通信请参看下面的文章链接: 博途PLC 1200/1500PLC MODBUS-RTU通讯优化(状态机编程)_博途plc modbus-rtu通信优化_RXXW_Dor的博客-CSDN博客博途PLC 1200/1500PLC MODBUS-RTU通讯_RXXW_Dor的博客-CSDN博客_博图modbus通讯1、1200PLC的modbus通讯,可以参看…

3.3 接口

文章目录1.接口的概念2.接口格式3.接口的特点3.1 练习-1:创建接口3.2 练习-2:创建接口实现类3.3 练习-3:创建接口测试类4.接口的用法5.接口的多继承多实现6.接口总结6.1 类与类的关系6.2 类与接口的关系6.3 接口与接口的关系6.4 抽象类与接口的区别1.接口的概念 与之前学习过的…

webpackEslint插件使用

webpackEslint插件使用 首先安装eslint-webpack-plugin npm i eslint-webpack-plugin -S 注意:如果未安装eslint>7,还需要先安装eslint npm i eslint -S 然后把插件添加到你的webpack配置,例如 const ESLintPluginreuqire(eslint-webpack-plugin) mo…

Android开发常谈—【热启动冷启动】

冷启动概述 app冷启动: 当应用启动时,后台没有该应用的进程,这时系统会重新创建一个新的进程分配给该应用, 这个启动方式就叫做冷启动(后台不存在该应用进程)。冷启动因为系统会重新创建一个新的进程分配给…

【坤坤讲师--图】KM算法

KM算法 KM算法是通过给每个顶点一个标号(叫做顶标)来把求最大权匹配的问题转化为求完备匹配的问题的。设顶点Xi的顶标为A[i],顶点Yj的顶标为B[j],顶点Xi与Yj之间的边权为w[i,j]。在算法执行过程中的任一时刻,对于任一条边(i,j),A[i]+B[j]>=w[i,j]始终成立。KM算法的正…

Python语言零基础入门教程(一)

Python 基础语法 Python 语言与 Perl,C 和 Java 等语言有许多相似之处。但是,也存在一些差异。 在本章中我们将来学习 Python 的基础语法,让你快速学会 Python 编程。 第一个 Python 程序 交互式编程 交互式编程不需要创建脚本文件&#…

【算法竞赛模板】单调队列与单调栈

【算法竞赛模板】单调队列与单调栈一、概念解析二、单调栈三、单调队列一、概念解析 单调栈:具有单调(递增或递减)性质和栈性质的数据结构     时间复杂度为 O(n)单调队列:具有单调(递增或递减)性质和…

R22-11 《Specification of Time Synchronization》文摘

1 Introduction and functional overview【功能】Time Synchronization between different applications and/or ECUs【目的】be able to track such events in time or to trigger them at an accurate point in time.【方式】ATime Synchronization APIis offered to the App…

webpack基础理解

webpack基础理解 webpack就是将不同格式的文件打包成浏览器能够执行识别的文件 首先创建一些文件 npm init -y 初始化文件 生成一个配置文件package.json 这里如果直接打开静态文件引入main 他会提示你import引入这种模块化语法有问题浏览器并不能直接识别,这时就…

计算机组成原理 第四章笔记记录

为笔记记录,会有个人的理解在里面,若有错误请指出,看到了就改,视频链接 指令格式 指令和指令集的定义 指令:指示计算机执行某种操作的命令,是计算机运行的最小功能单位 指令集:一台计算机的所有指令的集合构成该计算机的指令系统…

微信小程序【获取用户昵称头像和昵称(附源码)】

获取用户昵称头像和昵称 wx.getUserProfile bindgetuserinfo 登录过程 前端源码:https://pan.baidu.com/s/1uz2Gm2FMB-8RFVkhlHY3kQ 提取码:zb4w 后端源码:https://pan.baidu.com/s/1iPpLrXzWnpAsk5UsfKesGw 提取码:8bwm 小程…

Java poi之word文本图片内容提取

目录结构前言文档准备引入Maven依赖代码块提取结果验证孤勇者提取结果青鸟提取结果对比前言 应公司需求,需实现以下功能 word文本内容的替换;word文本内容的提取;word文档中图片的提取存放 此文章将使用Apache POI实现Word文档中文本内容及…

2023-2-3 刷题情况

二叉树着色游戏 题目描述 有两位极客玩家参与了一场「二叉树着色」的游戏。游戏中,给出二叉树的根节点 root,树上总共有 n 个节点,且 n 为奇数,其中每个节点上的值从 1 到 n 各不相同。 最开始时: 「一号」玩家从 …

BIGEMAP GIS Office添加离线地图

BIGEMAP GIS Office添加离线地图发布时间:2019-01-04 版权:BIGEMAP添加离线地图相关应用:搭建 离线地图 二次开发目的:搭建内网地图服务器,内网中可多人访问的地图服务,无需上网工具下载:1、BIG…

2023年企业必不可少的私域运营系统

随着人口红利消失、流量越来越贵、公域转化越来越难,2023年,能够提升用户全生命周期的私域运营,已经成为企业不得不做的事。 面对这种情况,企业必须要引入一款专业且高效的私域运营利器,来实现高效率私域运营管理。快…

二叉树层次遍历的C语言实现

二叉树 树是n个节点的有限集 每个节点事多有两颗子树的树称为 二叉树 二叉树的层次遍历 使用队列的数据结构,从树的根结点开始,依次将其左孩子和右孩子入队。而后每次队列中一个结点出队,都将其左孩子和右孩子入队,直到树中所有结…

Linux——死锁概念介绍和解决方式

目录 一.死锁概念介绍 二.死锁的解决方式 (一).预防死锁 方式一:不请求 方式二:强制剥夺资源 方式三:线性分配资源 (二).避免死锁:银行家算法 总体流程 安全性检查&#xf…

C语言---冒泡排序和快速排序

文章目录前言一、冒泡排序1.简介2.算法思路3.代码实现二、快速排序1.简介2.算法思路2.1左右指针法2.2挖坑法2.3前后指针法总结前言 交换排序有冒泡排序和快速排序这两种, 基本思想:所谓交换,就是根据序列中两个记录键值的比较结果来对换这两…

多目标跟踪:文献综述

文章目录摘要1、简介1.1、与其他相关综述的区别1.2、贡献1.3、综述的结构1.4. 外延2、 MOT问题2.1、问题公式化2.2、MOT的分类2.2.1、初始化方法2.2.2、处理方式2.2.3、输出类型2.2.4. 讨论3、MOT的组成3.1、外观模型3.1.1、视觉表征3.1.2. 统计测量3.2、运动模型3.2.1. 线性运…

安装httprunner manager遇到的坑

安装httprunner manager参考博客:https://www.cnblogs.com/MrqiuS/p/12944481.html安装mysqlclient报错Collecting mysqlclient1.3.12Downloading https://mirrors.aliyun.com/pypi/packages/6f/86/bad31f1c1bb0cc99e88ca2adb7cb5c71f7a6540c1bb001480513de76a931/m…