当前位置: 首页 > news >正文

django-项目

一、RESTful设计风格

基础概念

全称:Representational State Transfer

1.资源

        网络上的一个实体,每个资源都有一个独一无二的URL与之对应;获取资源-直接访问URL即可

2.表现层

资源的表现形式    如HTML、xml、JPG、json等

3.状态转化

访问一个URL即发生一次客户端和服务端得交互;此次交互将会涉及到数据和状态得变化

客户端需要通过某些方式接触具体得变化    如GET、POST、PUT、PATCH、DELETE

设计原则

1.协议    - http/https

2.域名

域名中体现出api字样

https://api.example.com/v1 或 https://example.org/api/.

3.版本

https://api.example.com/v1

 4.路径

路径中避免使用动词,资源用名词表示

5.HTTP动词语义

GET、POST、PUT、PATCH、DELETE

示例

6.巧用查询字符串

7.状态码

1)用HTTP响应码表达

2)自定义内部code进行响应

{’code‘:'00000','msg':'success','data':{}}

二、用户系统 - ORM

model

class UserProfile(models.Model):username=models.BigAutoField(verbose_name="用户名",primary_key=True)nickname=models.CharField(max_length=20,verbose_name="昵称")password=models.CharField(max_length=32)email = models.EmailField()phone=models.CharField(max_length=11)avatar=models.ImageField(upload_to='avatar',null=True)sign=models.CharField(max_length=50,verbose_name="个人签名",default=default_sign)info=models.CharField(max_length=150,verbose_name="个人简介",default='')created_time=models.DateTimeField(auto_now_add=True)updated_time=models.DateTimeField(auto_now=True)class Meta:db_table = 'user_user_profile'

三、用户系统-注册

只处理后端

from models import UserProfile
import hashlib
# 数据校验 前后端都要做
class UserViews(APIView):def post(self,request):username = request.data['user']nickname = request.data['nick']email = request.data['email']password_1 = request.data['password_1']password_2 = request.data['password_2']phone = request.data['phone']# 参数基本检查if password_1 != password_2:return Response("密码不一致")# 用户名可不可用old_users = UserProfile.objects.filter(username=username)if old_users:return Response("用户名已被使用")# 插入数据(MD5)p_m = hashlib.md5()p_m.update(password_1.encode())UserProfile.objects.create(username=username,nickname=username,password=p_m.hexdigest(),email=email,phone=phone)return Response("注册成功")

四、用户系统-登录

views

class LoginViews(APIView):def post(self,request):username = request.data['user']password = request.data['psd']user_info = UserProfile.objects.filter(username=username)if not user_info:return Response("用户不存在")p_m = hashlib.md5()p_m.update(password.encode())if p_m.hexdigest() != user_info.first().password:return Response("密码不正确")return Response("登录成功")

五、用户系统-jwt

相关文章:

django-项目

一、RESTful设计风格 基础概念 全称:Representational State Transfer 1.资源 网络上的一个实体,每个资源都有一个独一无二的URL与之对应;获取资源-直接访问URL即可 2.表现层 资源的表现形式 如HTML、xml、JPG、json等 3.状态转化 …...

红日靶场五(vulnstack5)渗透分析

环境搭建 win7 192.168.111.132(仅主机) 192.168.123.212(桥接) .\heart p-0p-0p-0win2008 ip: 192.168.111.131(仅主机) sun\admin 2020.comkali ip: 192.168.10.131(nat)vps&…...

掌握Gitflow的一些进阶用法

1、自定义分支命名约定: 默认情况下,GitFlow使用一套分支命名约定,如feature/、release/和hotfix/等前缀。然而,你可以根据项目的需求自定义分支名称。例如,你可以在分支名称中包含项目、功能或团队成员的信息&#x…...

算法随笔:各种经典最短路算法的简要比较总结

有多种最短路径的应用场景,它们需要用到不同的算法来解决。除了贪心最优搜索之外,其他都是最优性算法,即得到的解都是最短路径。其中m是边的数量,n是点的数量。 问题边权算法时间复杂度一个起点,一个终点非负数&#…...

concrt140.dll怎么下载,concrt140.dll修复工具(修复精灵下载)一键修复问题

今天,我将为大家介绍一个非常常见的问题:由于找不到concrt140.dll,无法继续执行代码怎么办。这个问题可能会让很多网友感到头疼,但是别担心,我会为大家提供5种最全详细的恢复方法。在接下来我将详细介绍这些问题及其解决方法。希望…...

自行实现字符串转浮点数函数atof()

【重复造轮子的原因】 尽管atof是标准C中自带的函数,用于将字符串转为浮点数,但是在某些环境下有可能没法使用的(例如CUDA环境中,没有atof函数,但是math.h可以使用),因此自行实现。 【通过的测试用例】 【实现的代码】 #include <stdio.h> #include <math.h…...

Windows平台Fortran编程入门

Fortran&#xff0c;原意为 Formula Translation&#xff08;公式翻译器&#xff09;&#xff1b;一门出现很早的面向科学计算的高级语言&#xff0c;在数值计算领域仍然使用&#xff1b; 免费 Fortran 的编译器包括 GCC 的 GFortran&#xff0c;Intel 的 Intel Fortran Compi…...

05-Mysql夺命三连问:什么是索引下推?什么是索引覆盖?什么是回表?【Java面试总结】

Mysql夺命三连问&#xff1a;什么是索引下推&#xff1f;什么是索引覆盖&#xff1f;什么是回表&#xff1f; 索引下推是mysql5.6 提出的一个查询优化方案&#xff0c;主要的目的是减少数据或查询中不必要的读取和计算&#xff0c;它的原理是将查询条件尽可能的推送到索引层面…...

晨启,MSP430开发板,51开发板,原理图,PCB图

下载&#xff1a;https://github.com/xddun/blog_code_search...

Notepad++ 的安装及配置

由于电脑重装了Win11系统&#xff0c;干脆重头开始&#xff0c;重新安装每一个软件~~~ 很多博客或者博主都会推荐notepad的官网&#xff1a;https://notepad-plus-plus.org/ 但大家亲自点开就会发现是无响应&#xff0c;如下图 同时&#xff0c;也会有很多博主直接给网盘地址…...

✔ ★算法基础笔记(Acwing)(一)—— 基础算法(20道题)【java版本】

基础算法 一、快速排序1. 快速排序例题2. 第k个数( 快速选择 ) ✔ ✔1.31★快排二刷总结( 4点 ) 二、归并排序1. 归并排序模板题 ✔ ✔1.31★二刷总结 ★2. 逆序对的数量 ✔ ✔1.31★二刷总结 三、二分1. 数的范围 ✔1.31★二刷总结(mid > x 则是 输出最左边一个)第一个大于…...

简单记录下gin中使用中间件记录操作日志

1、直接定义中间件package middlewareimport ("bytes""encoding/json""fmt""github.com/gin-gonic/gin""go.uber.org/zap""io""strconv""strings" )func LoggerMiddleWare() gin.HandlerFunc…...

基于Matlab利用IRM和RRTstar实现无人机路径规划(附上源码+数据+说明+报告+PPT)

无人机路径规划是无人机应用领域中的关键问题之一。本文提出了一种基于IRM&#xff08;Informed RRTstar Method&#xff09;和RRTstar&#xff08;Rapidly-exploring Random Tree star&#xff09;算法的无人机路径规划方法&#xff0c;并使用Matlab进行实现。该方法通过结合I…...

uniapp使用@microsoft/signalr(报错“ReferenceError: require is not defined“)

后台老哥要用微软的signalr&#xff0c;总结了一些经验和问题 引入方法 1、npm npm i microsoft/signalr 2、下载他的js或者cdn <script src"https://cdnjs.cloudflare.com/ajax/libs/microsoft-signalr/6.0.1/signalr.js"></script>在uniapp中&…...

CloudCompare 二次开发(9)——半径滤波

目录 一、概述二、代码集成三、结果展示本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、概述 使用CloudCompare与PCL的混合编程实现点云半径滤波。半径滤波的算法原理见:PCL 半径滤波器。基于PCL将半径滤波集成到Cl…...

ElementUI浅尝辄止29:Breadcrumb 面包屑

显示当前页面的路径&#xff0c;快速返回之前的任意页面。 1.如何使用&#xff1f; 在el-breadcrumb中使用el-breadcrumb-item标签表示从首页开始的每一级。Element 提供了一个separator属性&#xff0c;在el-breadcrumb标签中设置它来决定分隔符&#xff0c;它只能是字符串&am…...

ABB MPRC086444-005数字输入模块

ABB MPRC086444-005 是一款数字输入模块&#xff0c;通常用于工业自动化和控制系统中&#xff0c;用于接收和处理数字信号。以下是这种类型的数字输入模块通常可能具备的一般功能和特点&#xff1a; 数字输入接口&#xff1a;MPRC086444-005 模块通常配备多个数字输入通道&…...

stable diffusion实践操作-常见lora模型介绍

系列文章目录 本文专门开一节写Lora相关的内容&#xff0c;在看之前&#xff0c;可以同步关注&#xff1a; stable diffusion实践操作 文章目录 系列文章目录前言一、什么是lora?1.1 lora 定义1.2 lora的基本原理1.2 通过分层控制lora 二、作用&#xff1a;2.1 复刻人物特征2…...

kubeadm 安装k8s

目录 安装k8s 环境准备 所有节点&#xff0c;关闭防火墙规则&#xff0c;关闭selinux&#xff0c;关闭swap交换&#xff08;必须关闭swap分区&#xff09; //修改主机名 //所有节点修改hosts文件 //调整内核参数 所有节点安装docker 所有节点安装kubeadm&#xff0c;kube…...

选择最适合您的Bug管理软件:市场比较与推荐

“Bug管理软件哪家好&#xff1f;市场上有许多优秀的Bug管理系统品牌如&#xff1a;Zoho Projects、JIRA、Redmine、Bugzilla、MantisBT。” 一款高效的Bug管理系统可以帮助团队更有效地发现、记录和解决软件中的问题&#xff0c;从而提高产品质量和用户满意度。本文将为您介绍…...

PP实施经验分享(22)——(ECC版本)生产版本\BOM\工艺路线选择策略与批量大小优化实践

1. ECC版本下生产版本的选择逻辑 在SAP ECC系统中&#xff0c;生产版本的选择逻辑与S4版本存在显著差异。我经历过一个汽车零部件制造项目&#xff0c;当时客户就遇到了生产版本选择混乱的问题。他们原先使用的是S4系统&#xff0c;切换到ECC后发现很多配置需要重新调整。 物料…...

告别重复劳动:用快马平台生成你的专属工作流自动化agent

今天想和大家分享一个提升工作效率的小技巧——用自动化agent框架处理那些重复又繁琐的工作流程。作为一个经常要组织会议的程序员&#xff0c;我发现自己每天要花大量时间做同样的事情&#xff1a;从聊天记录里提取会议信息、手动创建日历事件、再给参会人发邮件通知。直到发现…...

Python 3.13.7(发布于 2025 年 8 月 14 日)在 Windows 平台上的官方下载选项列表

Python 3.13.7&#xff08;发布于 2025 年 8 月 14 日&#xff09;在 Windows 平台上的官方下载选项列表&#xff0c;包含多种架构&#xff08;x64、x86/32-bit、ARM64&#xff09;和两种分发形式&#xff1a; Windows installer&#xff1a;标准图形化安装程序&#xff08;含…...

VVC/VTM编码分析进阶:如何利用DecoderAnalyserApp深度解读CU划分与语法元素

VVC/VTM编码分析进阶&#xff1a;如何利用DecoderAnalyserApp深度解读CU划分与语法元素 在视频编码领域&#xff0c;VVC&#xff08;Versatile Video Coding&#xff09;作为新一代标准&#xff0c;其编码效率相比前代HEVC有显著提升。而VTM&#xff08;VVC Test Model&#xf…...

2025年短剧APP开发选型指南:uniApp混合开发 vs 安卓原生,哪个更适合你?

2025年短剧APP开发选型指南&#xff1a;uniApp混合开发 vs 安卓原生&#xff0c;哪个更适合你&#xff1f; 在短视频内容消费持续爆发的当下&#xff0c;微短剧作为一种新兴的内容形态正在迅速崛起。对于想要抓住这一风口的创业团队来说&#xff0c;技术选型往往成为第一个关键…...

忍者像素绘卷:天界画坊在操作系统课程设计中的应用:进程调度可视化

忍者像素绘卷&#xff1a;天界画坊在操作系统课程设计中的应用&#xff1a;进程调度可视化 1. 当操作系统教学遇上像素艺术 操作系统课程中的进程调度算法一直是教学难点。传统方式依靠静态图表和伪代码讲解&#xff0c;学生往往难以直观理解不同调度策略的实际运行差异。而&…...

保姆级教程:用Docker快速部署FreeSWITCH的ASR服务(含FunASR、sherpa-ncnn)

基于Docker的FreeSWITCH语音识别服务实战指南 语音识别&#xff08;ASR&#xff09;技术正在重塑通信系统的交互方式。对于FreeSWITCH开发者而言&#xff0c;将高效ASR服务集成到电话系统中&#xff0c;可以解锁语音指令控制、实时字幕生成、智能客服等创新应用场景。Docker技术…...

OpenSpeedy高效构建与分发指南:从源码到部署的全流程实践

OpenSpeedy高效构建与分发指南&#xff1a;从源码到部署的全流程实践 【免费下载链接】OpenSpeedy &#x1f3ae; An open-source game speed modifier. 项目地址: https://gitcode.com/gh_mirrors/op/OpenSpeedy OpenSpeedy作为一款专注于提升GitHub资源访问速度的开源…...

Qwen3-VL-30B效果实测:识别复杂图表毫无压力,回答精准又详细

Qwen3-VL-30B效果实测&#xff1a;识别复杂图表毫无压力&#xff0c;回答精准又详细 1. 开篇&#xff1a;当AI真正"看懂"了世界 想象一下这样的场景&#xff1a;你随手拍下一张满是数据和曲线的科研论文图表&#xff0c;AI不仅能准确识别出每个坐标轴的含义&#x…...

手柄不兼容PC游戏?试试ViGEmBus的虚拟控制器仿真技术

手柄不兼容PC游戏&#xff1f;试试ViGEmBus的虚拟控制器仿真技术 【免费下载链接】ViGEmBus Windows kernel-mode driver emulating well-known USB game controllers. 项目地址: https://gitcode.com/gh_mirrors/vi/ViGEmBus 你是否遇到过这样的情况&#xff1a;新买的…...