django安装和rest接口写法

django安装

  1. 确保已经安装了Python。命令行中输入python --version来检查Python的版本。

  2. 安装Django。你可以在命令行中使用以下命令来安装Django:

    pip install django
    
  3. 创建一个新的Django项目。在命令行中,进入你想要创建项目的目录,并运行以下命令:

    django-admin startproject project_name
    

    这个命令会在当前目录下创建一个新的Django项目。

  4. 进入项目目录。在命令行中,使用cd命令进入刚刚创建的项目目录。

    cd project_name
    
  5. 运行开发服务。在命令行中,使用以下命令来启动Django开发服务器:

    python manage.py runserver
    

    开发服务器将会在本地的http://localhost:8000/上运行。

    如果是pycharm启动需要在配置上运行manage文件
    在这里插入图片描述

rest接口应用

安装和Django REST framework。

pip install django djangorestframework

进入项目目录:

cd rest_api

然后,你可以使用以下命令创建一个新的Django应用程序:

python manage.py startapp api

接下来,打开项目目录中的settings.py文件,并将Django REST framework添加到INSTALLED_APPS列表中:

ALLOWED_HOSTS = ['*']

INSTALLED_APPS = [
    ...
    'rest_framework',
    'api',
    ...
]

然后,打开应用程序目录中的views.py文件,并创建一个继承自APIView的类视图:

from rest_framework.views import APIView
from rest_framework.response import Response

class TestView(APIView):
    def get(self, request):
        data = {
            'message': 'This is a test API'
        }
        return Response(data)

接下来,打开应用程序目录中的urls.py文件,并添加一个URL模式来映射到上面创建的类视图:

from django.urls import path
from . import views

urlpatterns = [
    path('test/', views.TestView.as_view(), name='test_view'),
]

最后,打开项目目录中的urls.py文件,并将应用程序的URL模式添加到urlpatterns列表中:

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/', include('api.urls')),
]

现在,你可以运行以下命令启动Django开发服务器:

python manage.py runserver

服务器启动后,你可以使用工具如Postman或curl来发送HTTP请求来调用RESTful API接口。例如,你可以发送GET请求到http://localhost:8000/api/test/来查看测试接口的结果。

rest接口的两种写法

写法1

from rest_framework.views import APIView
from rest_framework.response import Response

class MyView(APIView):
    def get(self, request):
        param1 = request.query_params.get('param1')
        param2 = request.query_params.get('param2')
        return Response({'param1': param1, 'param2': param2})

我们定义了一个名为MyView的类视图,并重写了其中的get方法。在get方法中,我们使用request.query_params.get()方法来获取名为param1param2的查询参数的值。

要在URL配置中使用这个类视图,按照以下示例进行操作:

from django.urls import path
from .views import MyView

urlpatterns = [
    path('my-view/', MyView.as_view(), name='my-view'),
]

在上面的示例中,我们将MyView类视图作为视图函数传递给as_view()方法,并将其映射到名为my-view的URL模式。

然后,可以使用查询参数来访问接口,就像之前的示例一样:

http://localhost:8000/my-view/?param1=value1&param2=value2

当您访问带有查询参数的URL时,DRF将自动解析查询参数,并将其作为request.query_params提供给get方法。您可以在get方法中使用这些查询参数来执行相应的操作,并返回响应。

写法2

from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status

def get_data(request):
    # 处理GET请求的逻辑
    data = {
        'message': 'GET request received'
    }
    return Response(data)

def create_data(request):
    # 处理POST请求的逻辑
    data = {
        'message': 'POST request received'
    }
    return Response(data, status=status.HTTP_201_CREATED)

def update_data(request, id):
    # 处理PUT请求的逻辑
    data = {
        'message': f'PUT request received for id {id}'
    }
    return Response(data)

def delete_data(request, id):
    # 处理DELETE请求的逻辑
    data = {
        'message': f'DELETE request received for id {id}'
    }
    return Response(data)

在上面的示例中,指定视图函数支持的HTTP方法。每个视图函数都接收一个request参数,用于处理请求,并返回一个Response对象作为响应。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vscode 访问本地或者远程docker环境

1、vscode 访问docker本地环境 直接点击左下角连接图标,弹出选项可以选择容器,只要容器在本地运行者,选择attach可以看到运行中的容器可以选择,选择其中需要选择的就行 ## 运行容器,可以-d后台运行都可以 docker run…

跨时钟域(Clock Domain Crossing,CDC)

本文参考:http://t.csdnimg.cn/VHga2 【数字IC基础】跨时钟域(CDC,Clock Domain Crossing)_ReRrain的博客-CSDN博客 同步设计:所有设计使用同一时钟源,频率相位可预知。 异步设计:设计中有两…

RPC接口测试技术-websocket 自动化测试实践

WebSocket 是一种在单个 TCP 连接上进行全双工通信(Full Duplex 是通讯传输的一个术语。通信允许数据在两个方向上同时传输,它在能力上相当于两个单工通信方式的结合。全双工指可以同时(瞬时)进行信号的双向传输( A→B 且 B→A &a…

elementui-plus el-tree组件数据不显示问题解决

当前情况: 显示: 注意看右侧的树是没有文字的,数据已经渲染,个数是对的,但就是没有文字, 解决: 对比以后发现是template中的#default{data}没有写大括号导致的 所以写上大括号后: 正常显示

ArcGIS 气象风场等示例 数据制作、服务发布及前端加载

1. 原始数据为多维数据 以nc数据为例。 首先在pro中需要以多维数据的方式去添加多维数据,这里的数据包含uv方向: 加载进pro的效果: 这里注意 数据属性需要为矢量uv: 如果要发布为服务,需要导出存储为tif格式&…

C语言编写一个程序采集招聘信息

因为在这里无法详细解释每行代码和步骤。但是,我可以给大家一个使用Python和requests库编写的简单爬虫程序的例子,它可以从网站上获取招聘信息。你可以根据这个例子,将其改写为使用C语言编写的爬虫程序。 import requests# 指定爬虫IP信息 pr…

javaScript爬虫程序抓取评论

由于评论区目前没有开放的API接口,所以我们不能直接通过编程获取到评论区的内容。但是,我们可以通过模拟浏览器的行为来实现这个功能。以下是一个使用Python的requests库和BeautifulSoup库来实现这个功能的基本思路: import requests from bs…

Matlab论文插图绘制模板第125期—特征渲染的三维气泡图

在之前的文章中,分享了很多Matlab三维气泡图的绘制模板: 进一步,再来分享一下特征渲染的三维气泡图。 先来看一下成品效果: 特别提示:本期内容『数据代码』已上传资源群中,加群的朋友请自行下载。有需要的…

Qt 自定义控件-支持换行和点击事件的Label

目录 前言1、功能描述2、代码实现2.1 头文件2.2 源码文件2.3 设计思路 3、示例4、总结 前言 本文主要介绍一个自定义控件,支持换行和点击事件的Label。起因是有这样一个需求,在一个复杂系统中有一个页面可以显示该系统中所有设备的名字,并且…

【Redis】Redis整合SSMRedis注解式缓存Redis中的缓存穿透、雪崩、击穿的原因以及解决方案(详解)

目录: 目录 一,SSM整合redis 二,redis注解式缓存 三,Redis中的缓存穿透、雪崩、击穿的原因以及解决方案(附图) 一,SSM整合redis 1.原因: 整合SSM和Redis可以提升系统的性能、可…

骑士巡游问题

一、骑士巡游问题 题目描述:骑士在8*8的国际象棋棋盘上进行巡游,当指定骑士出发的位置后(x,y),能输出骑士遍历棋盘的所有路径坐标。 输出效果: 代码(请在visual stdio下运行,Dev-C…

腾讯蒋杰:坚持用技术服务应用,腾讯混元大模型已接入180多个业务

“腾讯正在持续探索大模型应用场景,目前内部超180项业务已经接入腾讯混元大模型进行内测”,11月9日,腾讯集团副总裁蒋杰在2023年世界互联网大会乌镇峰会上表示。 腾讯集团副总裁 蒋杰 作为腾讯全链路自研的实用级大模型,自2023年…

MySQL(12):MySQL数据类型

MySQL中的数据类型 常见数据类型的属性: 整数类型 整数类型一共有 5 种,包括 TINYINT、SMALLINT、MEDIUMINT、INT(INTEGER)和 BIGINT。 CREATE TABLE test_int1 ( X TINYINT, y SMALLINT, z MEDIUMINT, m INT, n BIGINT );…

在linux上脱离hadoop安装hbase-2.5.6集群

一、软件版本 1.1、jdk1.8 1.2、hbase 2.5.6 1.3、zookeeper 3.8.1 二、计算节点 准备三台服务器 192.168.42.139 node1 192.168.42.140 node2 192.168.42.141 node3三、配置环境 1、每台服务器都配置jdk环境变量 [rootnode1 data]# javac -version javac 1.8.0_3912、每…

《童年》 思维导图

《童年》是高尔基自传体小说三部曲中的第一部,讲述的是高尔基幼年丧父、母亲改嫁,他跟随日渐破落的小染坊主外公以及外婆生活的童年经历。小说通过一个儿童天真无邪的眼光,向读者生动地展示了19世纪中叶俄罗斯社会底层人民的生活状态&#xf…

【c趣编程】输入一个整数,判断其有几位

目录 1题目要求: 2解题思路: 3代码如下所示: 4运行代码如下: 5总结: 1题目要求: 只用一个scanf输出一串数,不可以一个一个的输入并计数,那样太浪费时间了。 C语言是一门面向过…

cortex-A7核 中断实验(按键中断实验)

1.选择按键触发方式 下降沿 2.解决消抖的方法 1)ARM中:延时消抖 2)linux驱动开发:定时器函数 3.框图 内部流程框图: 需要RCC GPIO EXTI GIC章节 中断触发流程: 4.RCC 章节 1)使能GPIOF组 …

使用IDEA让文本对比不在变的困难

文章目录 前言操作1、IDEA与电脑磁盘任意文件的比较2、项目内部的文件比较3、剪切板比较4、IDEA本地历史比较5、IDEA版本历史对比 前言 在日常实际开发当中我们常常会对一些代码或内容进行比对查看是否有差异,这个时候不需要借用第三方比对插件,在IDEA中…

HackTheBox-Starting Point--Tier 2---Base

文章目录 一 题目二 过程记录2.1 打点2.2 权限获取2.3 横向移动2.4 权限提升 一 题目 Tags Web、Vulnerability Assessment、Custom Applications、Source Code Analysis、Authentication、Apache、PHP、Reconnaissance、Web Site Structure Discovery、SUDO Exploitation、Au…

无需开发,精臣云可轻松连接用户运营、广告推广等行业应用

精臣智慧标识科技有限公司简介 武汉精臣智慧标识科技有限公司,是国内便携式标签打印机创新品牌和实物管理解决方案服务商。在物品标签还处在繁琐的PC打印时代,精臣公司便创造性地从智能便携角度出发,顺应移动互联时代趋势,推出了…