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

基于Django创建一个WEB后端框架(DjangoRestFramework+MySQL)流程

一、Django项目初始化

1.创建Django项目

Django-admin startproject 项目名

2.安装 djangorestframework

pip install djangorestframework  

解释:

Django REST Framework (DRF) 是基于 Django 框架的一个强大的 Web API 框架,提供了多种工具和库来构建 RESTful API。它为我们提供了许多开箱即用的功能,例如序列化、验证、文档化、渲染和视图,使我们能够快速构建出功能强大的 Web API。

3.注册应用app

INSTALLED_APPS 配置相当于注册了Django项目中需要使用的应用。通过将应用名称添加到 INSTALLED_APPS 列表中,Django会识别并加载这些应用,使其功能在项目中可用。

4.修改数据库配置

Django自带一个sqlite小型数据库但是其写操作是全数据库级别的锁,这意味着在同一时间只有一个写操作可以执行。对于高并发的写操作场景,性能会受到限制。我们将其切换至常规使用的Mysql数据库并在Mysql中创建对应的数据库

下面的一步是为了导入pymysql将pymysql适配为mysqldb的接口

二、构建模型

1.创建app

Python manage.py startapp appname

执行之后就会生成对应的app模块了

接着要在settings.py模块中注册app

2.创建模型

models.Model 是 Django 框架中的一个基类,所有自定义的模型类都需要继承它。通过继承 models.Model,Django 可以为你的模型提供一系列功能,例如将类映射到数据库表、自动管理数据库迁移、提供 ORM(对象关系映射)接口等。

3.创建数据迁移文件以及进行数据迁移(至数据库也就是通过定义上述模型类执行相关命令在数据库中建表)

Python manage.py makemigrations #创建数据迁移文件

Python manage..py migrate #进行数据迁移

命令执行成功之后数据库模型(表)就创建出来了

三、体验Django提供的管理界面 注册后的模型可以在管理界面上增删改查

我们可以通过DjangoRDF自带的增删改查的前端交互页面

步骤:

在app的admin.oy文件下输入图片中的代码片段 将Article注册到admin控制台当中

接着创建一个超级用户登录模型管理界面

Python manage.py createsuperuser

创建好之后运行项目

Python manage.py runserver 127.0.0.1:port port可以自己设置端口号

浏览器输入http://127.0.0.1:8000/admin/即可进入到管理界面

四、创建Restful风格api

1.创建api调用层

2.将请求映射文件注册到主URL配置当中

3.创建序列化器模块以便模型对象序列化后便于传输

4.创建接口并指定接口允许的请求方式

5.将接口注册到路由当中

这样一个接口就创建好可以正常调用了

测试一下

一个基本的Django后端框架就搭建好了

相关文章:

基于Django创建一个WEB后端框架(DjangoRestFramework+MySQL)流程

一、Django项目初始化 1.创建Django项目 Django-admin startproject 项目名 2.安装 djangorestframework pip install djangorestframework 解释: Django REST Framework (DRF) 是基于 Django 框架的一个强大的 Web API 框架,提供了多种工具和库来构建 RESTf…...

【Python 2D绘图】Matplotlib绘图(统计图表)

【Python 2D绘图】Matplotlib绘图(统计图表) 1. 概述1.1 简介1.2 安装1.3 导入1.4 保存1.5 数据来源1.5.1 Numpy ndarray1.5.2 Pandas DataFrame 1.6 中文显示 2. 基础样式2.1 颜色2.1.1 简称2.1.2 全称 2.2 布局2.2.1 Matplotlib 画布划分2.2.2 绘制子图…...

vue3框架的响应式依赖追踪机制

当存在一个响应式变量于视图中发生改变时会更新当前组件的所以视图显示,但是没有视图中不写这个响应式变量就就算修改该变量也不会修改视图,这是为什么?我们能否可以理解宽泛的理解为vue组件的更新就是视图的更新,单当视图中不存在…...

.Net 6 上传文件接口 文件大小报错整体配置

/// <summary>/// 上传文件/// </summary>/// <param name"file"></param>/// <returns></returns>[HttpPost("UploadifyFile")][RequestSizeLimit(2000 * 1024 * 1024)] // 设置最大请求体大小为 100MBpublic async …...

Git基础之工作原理

基础概念 git本地有三个工作区域&#xff0c;工作目录 Working Directory&#xff0c;暂存区Stage/Index和资源区Repository/Git Directory&#xff0c;如果在加上远程的git仓库就是四个工作区域 四个区域与文件交换的命令之间的关系 WorkSpace&#xff1a;工作区&#xff0c;就…...

小程序 wxml 语法 —— 41列表渲染 - 进阶用法

这一节讲解列表渲染的两个进阶用法&#xff1a; 如果需要对默认的变量名和下标进行修改&#xff0c;可以使用 wx:for-item 和 wx:for-item&#xff1a; 使用 wx:for-item 可以指定数组当前元素的变量名使用 wx:for-index 可以指定数组当前下标的变量名 将 wx:for 用在 标签上&…...

ElasticSearch 入门教程

ElasticSearch 入门教程 ElasticSearch 是一个分布式、可扩展的搜索和分析引擎&#xff0c;基于 Apache Lucene 构建&#xff0c;支持全文检索、结构化查询和聚合分析。本教程将带你深入了解 ElasticSearch 的核心概念、安装配置、常见操作&#xff0c;并提供示例代码&#xf…...

用Python写一个算24点的小程序

一、运行界面 二、显示答案——递归介绍 工作流程&#xff1a; 1. 基本情况&#xff1a;函数首先检查输入的数字列表 nums 的长度。如果列表中只剩下一个数字&#xff0c;它会判断这个数字是否接近 24&#xff08;使用 abs(nums[0] - 24) < 1e-10 来处理浮点数精度问题&…...

分布式网络

分布式网络&#xff08;Distributed Network&#xff09;指的是一种计算机网络架构&#xff0c;其中计算资源&#xff08;计算、存储、数据处理等&#xff09;分布在多个物理或逻辑上的节点上&#xff0c;而不是集中在单一的服务器或数据中心中。这种架构的主要目标是提高系统的…...

忘记dedecms后台超级管理员账号和密码的解决方案

解决方案&#xff1a; 方案一、数据库修改&#xff1a; 1、前提是您能登录到数据库后台&#xff0c;登录MySQL数据库管理工具&#xff08;如phpMyAdmin&#xff09; 2、打开数据库中的 dede_admin 表&#xff0c;找到管理员记录&#xff0c;将 pwd 字段的值改成 f297a57a5a7…...

【Linux学习笔记】Linux基本指令分析和权限的概念

【Linux学习笔记】Linux基本指令分析和权限的概念 &#x1f525;个人主页&#xff1a;大白的编程日记 &#x1f525;专栏&#xff1a;Linux学习笔记 文章目录 【Linux学习笔记】Linux基本指令分析和权限的概念前言一. 指令的分析1.1 alias 指令1.2 grep 指令1.3 zip/unzip 指…...

Git基础之分支

常用指令 git branch 列出本地所有分支 git branch -r 列出所有远程分支 git branch [branch-name] 新建一个分支&#xff0c;但依然停留在当前分支 git checkout -b [branch] 新建一个分支&#xff0c;并切换到该分支 git merge [branch] 合并指定分支当前分支 git branch -d …...

MAC电脑常用操作

环境&#xff1a;M3芯片 &#xff0c;macOS15.2 &#x1f680; 快捷键 &#x1f5a5;️ 窗口管理 ✅ 退出/进入全屏模式 • 浏览器等应用&#xff1a;⌘ Command Ctrl F ✅ 最小化当前窗口 • ⌘ Command M • &#x1f4a1; 隐藏窗口但保留应用在后台运行 ✅ 关闭当前标…...

【计算机网络】深入解析 HTTP 协议的概念、工作原理和通过 Fiddler 抓包查看 HTTP 请求/响应的协议格式

网络原理— HTTP 1. 什么是HTTP? HTTP(全称为"超文本传输协议")是一种应用非常广泛的应用层协议&#xff1a; HTTP 往往是基于传输层的 TCP 协议实现的 (HTTP1.0,HTTP1.1,HTTP2.0 均为TCP,HTTP3基于UDP实现) 我们平时打开一个网站&#xff0c;就是通过HTTP协议来…...

Springboot redis bitMap实现用户签到以及统计,保姆级教程

项目架构&#xff0c;这是作为demo展示使用&#xff1a; Redis config&#xff1a; package com.zy.config;import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.PropertyAccessor; import com.fasterxml.jackson.databind.Ob…...

【C++】:STL详解 —— 红黑树封装map和set

目录 红黑树的源代码 正向迭代器的代码 反向迭代器的代码 set的模拟实现 map的模拟实现 红黑树的源代码 #pragma once #include <iostream>using namespace std; // set ->key // map ->key/value// set ->key // map ->key/valueenum Colour {RED,BLAC…...

FPGA设计时序约束用法大全保姆级说明

目录 一、序言 二、时序约束概览 2.1 约束五大类 2.2 约束功能简述 2.3 跨时钟域约束 三、时序约束规范 3.1 时序约束顺序 3.2 约束的优先级 四、约束示例 4.1 设计代码 4.2 时序结果 4.2.1 create_clock 4.2.2 create_generated_clock 4.2.3 Rename_Auto-Derive…...

【前缀和与差分 C/C++】洛谷 P8218 求区间和

2025 - 03 - 09 - 第 72 篇 Author: 郑龙浩 / 仟濹 【前缀和与差分 C/C】 文章目录 洛谷 P8218 求区间和题目描述输入格式输出格式输入输出样例 #1输入 #1输出 #1 说明/提示思路代码 洛谷 P8218 求区间和 题目描述 给定 n n n 个正整数组成的数列 a 1 , a 2 , ⋯ , a n a_…...

C++修炼之路:初识C++

Hello大家好&#xff01;很高兴我们又见面啦&#xff01;给生活添点passion&#xff0c;开始今天的编程之路&#xff01; 我的博客&#xff1a;<但凡. 我的专栏&#xff1a;《编程之路》、《数据结构与算法之美》、《题海拾贝》 欢迎点赞&#xff0c;关注&#xff01; 引言 …...

Pytorch 第九回:卷积神经网络——ResNet模型

Pytorch 第九回&#xff1a;卷积神经网络——ResNet模型 本次开启深度学习第九回&#xff0c;基于Pytorch的ResNet卷积神经网络模型。这是分享的第四个卷积神经网络模型。该模型是基于解决因网络加深而出现的梯度消失和网络退化而进行设计的。接下来给大家分享具体思路。 本次…...

YOLOv12镜像实战:工业质检场景下的高精度缺陷识别方案

YOLOv12镜像实战&#xff1a;工业质检场景下的高精度缺陷识别方案 1. 工业质检的挑战与YOLOv12的机遇 在制造业数字化转型浪潮中&#xff0c;工业质检一直是自动化程度较低的环节。传统人工检测面临三大痛点&#xff1a; 效率瓶颈&#xff1a;熟练质检员每分钟最多检测20-30…...

bert-base-chinese详细步骤:如何将test.py改造成支持流式文本处理的微服务

bert-base-chinese详细步骤&#xff1a;如何将test.py改造成支持流式文本处理的微服务 1. 项目背景与价值 在实际的工业场景中&#xff0c;我们经常需要处理大量的文本数据流。传统的批处理方式虽然简单&#xff0c;但无法满足实时性要求高的应用场景。比如智能客服系统需要实…...

DLSS Swapper终极指南:如何快速管理游戏DLSS版本提升性能?

DLSS Swapper终极指南&#xff1a;如何快速管理游戏DLSS版本提升性能&#xff1f; 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper DLSS Swapper是一款专为NVIDIA显卡用户设计的智能管理工具&#xff0c;能够无缝管理游…...

【进阶指南】VSCode + Clang-Format:从零定制你的专属代码风格(130+配置项实战解析)

1. 为什么需要定制代码风格&#xff1f; 当你第一次接触代码格式化工具时&#xff0c;可能会觉得默认配置已经足够好用。但当你参与过几个团队项目后&#xff0c;就会发现统一的代码风格有多重要。我曾经接手过一个遗留项目&#xff0c;里面混杂着五种不同的缩进风格——有用制…...

ComfyUI-VideoHelperSuite:AI视频工作流的全栈解决方案

ComfyUI-VideoHelperSuite&#xff1a;AI视频工作流的全栈解决方案 【免费下载链接】ComfyUI-VideoHelperSuite Nodes related to video workflows 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-VideoHelperSuite 1. 核心价值解析&#xff1a;图像序列到视频的…...

解决ModelScope与datasets版本兼容性问题的最佳实践

1. 为什么ModelScope和datasets版本兼容性这么重要&#xff1f; 第一次用ModelScope加载数据集时&#xff0c;我就被报错整懵了。明明按照官方文档安装了最新版&#xff0c;却提示"ImportError: cannot import name _FEATURE_TYPES from datasets"。后来才发现是Mode…...

揭秘APP签名信息:如何快速获取MD5、SHA1和SHA256值

1. 为什么需要获取APP签名信息&#xff1f; 当你下载一个APP时&#xff0c;有没有想过如何确认它真的是官方发布的版本&#xff1f;或者作为开发者&#xff0c;如何确保自己打包的APK没有被篡改&#xff1f;这些问题的答案都藏在APP的签名信息里。签名信息就像APP的"身份证…...

pythondjango心理咨询vue

目录Python Django 心理咨询系统功能分析后端&#xff08;Django&#xff09;功能模块前端&#xff08;Vue.js&#xff09;功能模块技术实现关键点扩展功能建议项目技术支持源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作Python Django 心理…...

网站外部 SEO 优化有哪些策略_SEO 网络推广与传统推广有什么区别

<h2>网站外部 SEO 优化有哪些策略</h2> <p>在当今的数字营销领域&#xff0c;外部 SEO 优化已经成为提升网站排名和流量的关键策略。外部 SEO&#xff08;Search Engine Optimization&#xff09;优化是一项通过外部手段提升网站在搜索引擎结果页面&#xff…...

周红伟:OpenClaw 企业级智能体架构与全栈实战

周红伟“世界级 OpenClaw 智能体全栈实战培训方案”。 这套方案融合了架构设计、全链路开发、安全部署与商业落地四大维度&#xff0c;旨在帮助企业团队从“理论认知”跨越到“工程化落地”&#xff0c;构建具备生产级能力的AI智能体系统。 &#x1f680; 培训主题&#xff1a;…...