当前位置: 首页 > 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;从而提高产品质量和用户满意度。本文将为您介绍…...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

MVC 数据库

MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序

一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...

基于Springboot+Vue的办公管理系统

角色&#xff1a; 管理员、员工 技术&#xff1a; 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能&#xff1a; 该办公管理系统是一个综合性的企业内部管理平台&#xff0c;旨在提升企业运营效率和员工管理水…...

三分算法与DeepSeek辅助证明是单峰函数

前置 单峰函数有唯一的最大值&#xff0c;最大值左侧的数值严格单调递增&#xff0c;最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值&#xff0c;最小值左侧的数值严格单调递减&#xff0c;最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...

LRU 缓存机制详解与实现(Java版) + 力扣解决

&#x1f4cc; LRU 缓存机制详解与实现&#xff08;Java版&#xff09; 一、&#x1f4d6; 问题背景 在日常开发中&#xff0c;我们经常会使用 缓存&#xff08;Cache&#xff09; 来提升性能。但由于内存有限&#xff0c;缓存不可能无限增长&#xff0c;于是需要策略决定&am…...

android RelativeLayout布局

<?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"android:gravity&…...

《Docker》架构

文章目录 架构模式单机架构应用数据分离架构应用服务器集群架构读写分离/主从分离架构冷热分离架构垂直分库架构微服务架构容器编排架构什么是容器&#xff0c;docker&#xff0c;镜像&#xff0c;k8s 架构模式 单机架构 单机架构其实就是应用服务器和单机服务器都部署在同一…...

小智AI+MCP

什么是小智AI和MCP 如果还不清楚的先看往期文章 手搓小智AI聊天机器人 MCP 深度解析&#xff1a;AI 的USB接口 如何使用小智MCP 1.刷支持mcp的小智固件 2.下载官方MCP的示例代码 Github&#xff1a;https://github.com/78/mcp-calculator 安这个步骤执行 其中MCP_ENDPOI…...