RESTful Python

news2024/11/28 4:42:21

RESTful Python是一种使用Python编程语言实现RESTful API的方法。下面是一些常用的Python库和框架,可以用来创建RESTful API:

  1. Flask: Flask是一个轻量级的Python Web框架,可以用来创建RESTful API。它具有灵活、易于使用和快速开发的特点。

  2. Django REST framework:Django REST framework是一个强大的Web框架,可以用来快速创建RESTful API。它提供了许多功能,例如认证、授权、序列化和视图等。

  3. Falcon:Falcon是一个高性能的Python Web框架,可以用来创建RESTful API。它不仅仅是一个Web框架,还提供了许多中间件和扩展,可以帮助你快速构建高性能的API。

  4. Pyramid:Pyramid是一个开源的Python Web框架,可以用来创建RESTful API。它支持多种模板语言、路由和中间件,可以帮助你快速开发复杂的Web应用程序和API。

以上是一些常用的Python库和框架,可以用来创建RESTful API。根据自己的需要和技能水平,选择一个适合自己的框架进行开发即可。

安装django rest framework

建立环境

python -m venv venv

目录多了一个venv目录,可以看到里面的文件夹内容

 激活venv环境

 目录路径前面多(venv) 说明venv 环境激活

 

安装相应的python 包 django

pip install django 直接就安装完毕

pip install django
Collecting django
  Downloading Django-4.2.1-py3-none-any.whl (8.0 MB)
     |██████████████████████████████▌ | 7.6 MB 15 kB/s eta 0:00:27
     |██████████████████████████████▌ | 7.6 MB 17 kB/s eta 0:00:23
     |██████████████████████████████▌ | 7.6 MB 17 kB/s eta 0:00:22
     |██████████████████████████████▌ | 7.6 MB 17 kB/s eta 0:00:22
     |██████████████████████████████▌ | 7.6 MB 21 kB/s eta 0:00:18
     |██████████████████████████████▌ | 7.6 MB 21 kB/s eta 0:00:17
     |██████████████████████████████▌ | 7.6 MB 21 kB/s eta 0:00:17
     |██████████████████████████████▌ | 7.6 MB 21 kB/s eta 0:00:16
     |███████████████████████████████ | 7.7 MB 21 kB/s eta 0:00:16
     |███████████████████████████████ | 7.7 MB 26 kB/s eta 0:00:12
     |███████████████████████████████ | 7.7 MB 26 kB/s eta 0:00:12
     |███████████████████████████████ | 7.7 MB 26 kB/s eta 0:00:12
     |███████████████████████████████ | 7.7 MB 29 kB/s eta 0:00:10
     |███████████████████████████████ | 7.7 MB 29 kB/s eta 0:00:10
     |███████████████████████████████ | 7.7 MB 26 kB/s eta 0:00:11
     |███████████████████████████████ | 7.7 MB 26 kB/s eta 0:00:10
     |███████████████████████████████ | 7.7 MB 26 kB/s eta 0:00:10
     |███████████████████████████████ | 7.8 MB 20 kB/s eta 0:00:12
     |███████████████████████████████ | 7.8 MB 20 kB/s eta 0:00:12
     |███████████████████████████████ | 7.8 MB 20 kB/s eta 0:00:11
     |███████████████████████████████ | 7.8 MB 17 kB/s eta 0:00:12
     |███████████████████████████████ | 7.8 MB 17 kB/s eta 0:00:12
     |███████████████████████████████ | 7.8 MB 17 kB/s eta 0:00:11
     |███████████████████████████████ | 7.8 MB 17 kB/s eta 0:00:10
     |███████████████████████████████▌| 7.8 MB 20 kB/s eta 0:00:0
     |███████████████████████████████▌| 7.8 MB 20 kB/s eta 0:00:0
     |███████████████████████████████▌| 7.8 MB 20 kB/s eta 0:00:0
     |███████████████████████████████▌| 7.9 MB 21 kB/s eta 0:00:0
     |███████████████████████████████▌| 7.9 MB 21 kB/s eta 0:00:0
     |███████████████████████████████▌| 7.9 MB 21 kB/s eta 0:00:0
     |███████████████████████████████▌| 7.9 MB 20 kB/s eta 0:00:0
     |███████████████████████████████▌| 7.9 MB 20 kB/s eta 0:00:0
     |███████████████████████████████▌| 7.9 MB 20 kB/s eta 0:00:0
     |████████████████████████████████| 7.9 MB 17 kB/s eta 0:00:0
     |████████████████████████████████| 7.9 MB 17 kB/s eta 0:00:0
     |████████████████████████████████| 7.9 MB 17 kB/s eta 0:00:0
     |████████████████████████████████| 7.9 MB 16 kB/s eta 0:00:0
     |████████████████████████████████| 8.0 MB 16 kB/s eta 0:00:0
     |████████████████████████████████| 8.0 MB 16 kB/s eta 0:00:0
     |████████████████████████████████| 8.0 MB 16 kB/s eta 0:00:0
     |████████████████████████████████| 8.0 MB 22 kB/s eta 0:00:0
     |████████████████████████████████| 8.0 MB 22 kB/s
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='pypi.org', port=443): Read timed out. (read timeout=15)")': /simple/backports-zoneinfo/
Collecting backports.zoneinfo; python_version < "3.9"
  Downloading backports.zoneinfo-0.2.1-cp38-cp38-win_amd64.whl (38 kB)
Collecting sqlparse>=0.3.1
  Downloading sqlparse-0.4.4-py3-none-any.whl (41 kB)
     |████████████████████████████████| 40 kB 14 kB/s eta 0:00:01
     |████████████████████████████████| 41 kB 18 kB/s
Collecting asgiref<4,>=3.6.0
  Downloading asgiref-3.7.2-py3-none-any.whl (24 kB)
Collecting tzdata; sys_platform == "win32"
  Downloading tzdata-2023.3-py2.py3-none-any.whl (341 kB)
     |███████████████████████████████ | 327 kB 17 kB/s eta 0:00:01
     |███████████████████████████████▌| 337 kB 17 kB/s eta 0:00:0
     |████████████████████████████████| 341 kB 17 kB/s
Collecting typing-extensions>=4; python_version < "3.11"
  Downloading typing_extensions-4.6.2-py3-none-any.whl (31 kB)
Installing collected packages: backports.zoneinfo, sqlparse, typing-extensions, asgiref, tzdata,
django
Successfully installed asgiref-3.7.2 backports.zoneinfo-0.2.1 django-4.2.1 sqlparse-0.4.4 typing-extensions-4.6.2 tzdata-2023.3
WARNING: You are using pip version 20.2.3; however, version 23.1.2 is available.
You should consider upgrading via the 'd:\work\pywork\venv\scripts\python.exe -m pip install --upgrade pip' command.

查看django的版本 4.2.1 最新版本

python -m django version
4.2.1

pip install djangorestframework

pip install djangorestframework
Collecting djangorestframework
  Downloading djangorestframework-3.14.0-py3-none-any.whl (1.1 MB)
     |██████████████████████████████▌ | 1.0 MB 15 kB/s eta 0:00:04
     |███████████████████████████████ | 1.0 MB 14 kB/s eta 0:00:03
     |███████████████████████████████ | 1.0 MB 14 kB/s eta 0:00:02
     |███████████████████████████████▌| 1.0 MB 14 kB/s eta 0:00:0
     |████████████████████████████████| 1.1 MB 14 kB/s eta 0:00:0
     |████████████████████████████████| 1.1 MB 14 kB/s
Requirement already satisfied: django>=3.0 in d:\work\pywork\venv\lib\site-packages (from djangorestframework) (4.2.1)
Collecting pytz
  Downloading pytz-2023.3-py2.py3-none-any.whl (502 kB)
     |██████████████████████████████▌ | 481 kB 22 kB/s eta 0:00:01
     |███████████████████████████████ | 491 kB 19 kB/s eta 0:00:01
     |████████████████████████████████| 501 kB 19 kB/s eta 0:00:0
     |████████████████████████████████| 502 kB 19 kB/s
Requirement already satisfied: backports.zoneinfo; python_version < "3.9" in d:\work\pywork\venv\lib\site-packages (from django>=3.0->djangorestframework) (0.2.1)
Requirement already satisfied: tzdata; sys_platform == "win32" in d:\work\pywork\venv\lib\site-packages (from django>=3.0->djangorestframework) (2023.3)
Requirement already satisfied: asgiref<4,>=3.6.0 in d:\work\pywork\venv\lib\site-packages (from django>=3.0->djangorestframework) (3.7.2)
Requirement already satisfied: sqlparse>=0.3.1 in d:\work\pywork\venv\lib\site-packages (from django>=3.0->djangorestframework) (0.4.4)
Requirement already satisfied: typing-extensions>=4; python_version < "3.11" in d:\work\pywork\venv\lib\site-packages (from asgiref<4,>=3.6.0->django>=3.0->djangorestframework) (4.6.2)
Installing collected packages: pytz, djangorestframework
Successfully installed djangorestframework-3.14.0 pytz-2023.3
WARNING: You are using pip version 20.2.3; however, version 23.1.2 is available.
You should consider upgrading via the 'd:\work\pywork\venv\scripts\python.exe -m pip install --upgrade pip' command.

建立pywork工作目录并且建立一个officehouse项目

django-admin startproject officehouse .

目录建立的路径和文件夹

添加一个officehouse_start 为项目app

django-admin startapp officehouse_start

 第一层同步数据库

python manage.py migrate
?[36;1mOperations to perform:?[0m
?[1m  Apply all migrations: ?[0madmin, auth, contenttypes, sessions
?[36;1mRunning migrations:?[0m
  Applying contenttypes.0001_initial...?[32;1m OK?[0m
  Applying auth.0001_initial...?[32;1m OK?[0m
  Applying admin.0001_initial...?[32;1m OK?[0m
  Applying admin.0002_logentry_remove_auto_add...?[32;1m OK?[0m
  Applying admin.0003_logentry_add_action_flag_choices...?[32;1m OK?[0m
  Applying contenttypes.0002_remove_content_type_name...?[32;1m OK?[0m
  Applying auth.0002_alter_permission_name_max_length...?[32;1m OK?[0m
  Applying auth.0003_alter_user_email_max_length...?[32;1m OK?[0m
  Applying auth.0004_alter_user_username_opts...?[32;1m OK?[0m
  Applying auth.0005_alter_user_last_login_null...?[32;1m OK?[0m
  Applying auth.0006_require_contenttypes_0002...?[32;1m OK?[0m
  Applying auth.0007_alter_validators_add_error_messages...?[32;1m OK?[0m
  Applying auth.0008_alter_user_username_max_length...?[32;1m OK?[0m
  Applying auth.0009_alter_user_last_name_max_length...?[32;1m OK?[0m
  Applying auth.0010_alter_group_name_max_length...?[32;1m OK?[0m
  Applying auth.0011_update_proxy_permissions...?[32;1m OK?[0m
  Applying auth.0012_alter_user_first_name_max_length...?[32;1m OK?[0m
  Applying sessions.0001_initial...?[32;1m OK?[0m

建立超级用户admin和密码123456 输入邮箱为admin@admin.com

python manage.py createsuperuser
Username (leave blank to use 'administrator'): admin
Email address: admin@admin.com
Password:
Password (again):
?[31;1mThis password is too short. It must contain at least 8 characters.
This password is too common.
This password is entirely numeric.
?[0mBypass password validation and create user anyway? [y/N]: y
Superuser created successfully.

在officehouse_start 目录下建立一个序列化的py文件

from django.contrib.auth.models import User, Group
from rest_framework import serializers


class UserSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = User
        fields = ('url', 'username', 'email', 'groups')


class GroupSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = Group
        fields = ('url', 'name')

配置setting和urls.py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'rest_framework',
]

启动服务

python manage.py runserver
Watching for file changes with StatReloader
Performing system checks...

System check identified some issues:

WARNINGS:
?[33;1m?: (rest_framework.W001) You have specified a default PAGE_SIZE pagination rest_framework setting, without specifying also a DEFAULT_PAGINATION_CLASS.
        HINT: The default for DEFAULT_PAGINATION_CLASS is None. In previous versions this was PageNumberPagination. If you wish to define PAGE_SIZE globally whilst defining pagination_class on a per-view basis you may silence this check.?[0m

System check identified 1 issue (0 silenced).
June 01, 2023 - 09:21:48
Django version 4.2.1, using settings 'officehouse.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

 升级pip

Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 20.2.3
    Uninstalling pip-20.2.3:
      Successfully uninstalled pip-20.2.3
Successfully installed pip-23.1.2

pip install django-filter
Collecting django-filter
  Downloading django_filter-23.2-py3-none-any.whl (91 kB)
     --------------------------------------- 91.9/91.9 kB 76.9 kB/s eta 0:00:00
Requirement already satisfied: Django>=3.2 in d:\work\pywork\venv\lib\site-packages (from django-filter) (4.2.1)
Requirement already satisfied: asgiref<4,>=3.6.0 in d:\work\pywork\venv\lib\site-packages (from Django>=3.2->django-filter) (3.7.2)
Requirement already satisfied: sqlparse>=0.3.1 in d:\work\pywork\venv\lib\site-packages (from Django>=3.2->django-filter) (0.4.4)
Requirement already satisfied: backports.zoneinfo in d:\work\pywork\venv\lib\site-packages (from Django>=3.2->django-filter) (0.2.1)
Requirement already satisfied: tzdata in d:\work\pywork\venv\lib\site-packages (from Django>=3.2->django-filter) (2023.3)
Requirement already satisfied: typing-extensions>=4 in d:\work\pywork\venv\lib\site-packages (from asgiref<4,>=3.6.0->Django>=3.2->django-filter) (4.6.2)
Installing collected packages: django-filter
Successfully installed django-filter-23.2

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

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

相关文章

[数据库]关于数据库设计的原则

数据表设计原则: 自动编号的ID应该设计为bigint&#xff0c;因为int可能不够用&#xff0c;并且&#xff0c;为了便于统一管理&#xff0c;写的舒心不出错&#xff0c;建议所有表的自增ID全部使用bigint 。&#xff08;缺点是占空间&#xff0c;如果有20亿条数据&#xff0c;浪…

地震勘探基础(二)之地震分辨率

地震分辨率 分辨率&#xff08;resolution&#xff09;表示分离出两个十分靠近的物体的能力&#xff0c;一般用距离表示。如果两个物体之间的距离大于某个特定距离时可以分辨出是两个分离的物体&#xff0c;小于这个特定距离时就不再能分辨出是两个物体&#xff0c;那么这个特…

电压放大器在超声波测距仪中的应用实例研究

超声波测距仪是一种用于测量距离的设备&#xff0c;其原理是利用超声波在空气中传播的速度和反射特性来计算距离。而电压放大器则是超声波测距仪中的一个重要组成部分&#xff0c;它可以将超声波信号放大到足够强的水平&#xff0c;以便于后续处理和显示。本安泰电子将为大家介…

【学习日记2023.6.1】数据库隔离级别

1. 数据库隔离级别 1.1 事务 事务只是一个改变&#xff0c;是一些操作的集合&#xff1b;用专业的术语讲&#xff0c;他就是一个程序的执行单元&#xff1b;事务本身其实并不包含这4个特性&#xff0c;只是我们需要通过某些手段&#xff0c;尽可能的让这个执行单元满足这四个特…

【C语言进阶笔记】

文章目录 1. const&#xff08;常量指针、指针常量&#xff09;2. static3. extern4. 指针数组和数组指针5. 结构体对齐6. int / uint取值范围、二进制形式与转换、负数表示7. \0&#xff0c;0&#xff0c;"0"&#xff0c;0之间的区别8. 类型自动转换9. 内存结构10. …

【前端之旅】nvm-Node版本管理工具

一名软件工程专业学生的前端之旅,记录自己对三件套(HTML、CSS、JavaScript)、Jquery、Ajax、Axios、Bootstrap、Node.js、Vue、小程序开发(Uniapp)以及各种UI组件库、前端框架的学习。 【前端之旅】Web基础与开发工具 【前端之旅】手把手教你安装VS Code并附上超实用插件…

【HttpRunnerManager】搭建接口自动化测试平台操作流程

一、需要准备的知识点 1. linux: 安装 python3、nginx 安装和配置、mysql 安装和配置 2. python: django 配置、uwsgi 配置 二、我搭建的环境 1. Centos7 &#xff08;配置 rabbitmq、mysql 、Supervisord&#xff09; 2. python 3.6.8 &#xff08;配置 django、uwsgi&am…

自然语言处理实战9-大语言模型的训练与文本生成过程

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下自然语言处理实战9-大语言模型的训练与文本生成过程&#xff0c;以下是本文的目录结构&#xff1a; 文章目录 1.引言 2.大语言模型概述 3.大语言模型的应用项目 3.1 语言生成 3.2 机器翻译 3.3 问答系统 3.4 自动…

Express框架从入门到如土

目录 前言一&#xff0c;初体验二&#xff0c;路由2.1 什么是路由2.2. 路由的使用2.3 获取请求报文参数2.4 id的通配2.5 响应的设置 三&#xff0c;中间件3.1 中间件概述3.2 全局中间件与路由中间件的比对3.3 全局中间件的使用3.4 局部中间件的使用3.5 静态资源中间件&#xff…

“邮件营销新趋势,这个平台让你收获颇丰!

随着各媒体平台的迅速发展&#xff0c;2023年大家更专注于视频营销、网红营销、直播营销等营销方式。可以见得&#xff0c;数字媒介手段的发展&#xff0c;对于营销方式也产生了巨大的影响。但是&#xff0c;企业在拥抱新兴的营销方式的同时&#xff0c;也不要忽视传统的营销方…

好用的Chrome浏览器插件推荐(不定期更新)

好用的Chrome浏览器插件推荐 1.1 CSDN-浏览器助手1.2 Google 翻译1.3 JSON Viewer1.4 ModHeader - Modify HTTP headers1.5 Octotree - GitHub code tree 1.1 CSDN-浏览器助手 CSDN-浏览器助手 是一款集成本地书签、历史记录与 CSDN搜索(so.csdn.net) 的搜索工具 推荐&#x…

碳中和背景下我国空调系统发展趋势2022(李先庭)

碳中和背景下我国空调系统发展趋势 摘要 我国建筑空调系统在运行阶段的年碳排放量约为&#xff19;&#xff0e;&#xff19;亿&#xff54;二氧化碳&#xff0c;降低其碳排放是实现碳达峰碳中和目标的重要挑战之一。本文对我国当前空调系统碳排放量进行了拆解&#xff0c;分…

node-exporter,prometheus,grafana三者之间的联系

一、node-exporter与节点机 用于收集节点机器的数据信息&#xff0c;那么node-exporter与节点机器的连接在哪里&#xff1f; node-exporter.yaml apiVersion: apps/v1 kind: DaemonSet metadata:name: node-exporternamespace: kube-systemlabels:k8s-app: node-exporter spe…

调整直线导轨间隙有什么方法?

直线导轨作为机械行业中非常重要的传动部件&#xff0c;应用范围当然相当广泛&#xff0c;尤其是自动化设备&#xff0c;基本上我们都能看到它的作用。 在机械行业待得久的人都知道&#xff0c;直线导轨在使用的过程中&#xff0c;为了保证直线导轨的正常工作&#xff0c;直线导…

C++ string类-2

at at 函数是在C还没有支持运算符重载的时候提供的。 他可以像 [] 重载运算符一样&#xff0c;找到某个位置的字符&#xff1a; string s1("hello world");s1.at(0) x;cout << s1 << endl; 输出&#xff1a; [] 重载运算符和 at&#xff08;&#x…

GIT常见报错以及解决方法

GIT常见报错以及解决方法 Changes not staged for commit问题复现原理解决 warning: adding embedded git repository问题复现原理解决 error: src refspec master does not match any问题复现 Changes not staged for commit问题复现&#xff1a;解决 Changes not staged for …

软考A计划-电子商务设计师-电子商务基础知识

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分享&am…

chatgpt赋能python:Python为什么成为不可或缺的编程语言?

Python为什么成为不可或缺的编程语言&#xff1f; Python语言在过去的十年间&#xff0c;已经成为编程领域中不可或缺的一种语言。Python语言是一种高级、通用、面向对象语言&#xff0c;并且在数据科学、机器学习、网站开发等众多领域中广泛应用。本文将探讨为什么Python成为…

保护密码安全:ADSelfService Plus的重要性与优势

引言&#xff1a; 在当今数字化时代&#xff0c;密码安全对于个人和组织而言变得愈发重要。随着互联网的普及和数据泄露事件的频发&#xff0c;传统的用户名和密码已经不再足够保护我们的个人和机密信息。为了解决这个问题&#xff0c;许多组织开始采用密码管理工具&#xff0…

Fourier分析入门——第13章——信号分析

目录 第13章 信号分析 13.1 引言 13.2 加窗(windowing) 13.3 用一系列窗口采样(Sampling with an array of windows) 13.4 混叠现象(Aliasing) 13.5 通过插值重建(Reconstruction by interpolation) 13.6 非点采样(Non-point sampling) 13.7 覆盖系数规则(The coverage …