IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Django创建回调接口api -> 正文阅读

[Python知识库]Django创建回调接口api

背景:

基于web开发框架Django创建callback_url,将通过’POST’方法传入的回调信息写入mysql数据库中

首先贴一下Django说明文档:使用 Django | Django 文档 | Django

1. Django下载安装

有以下几种安装方法:

1)使用pip安装

可以先创建一个虚拟环境,以免影响其他的项目。创建虚拟环境的方法:

编写你的第一个 Django 补丁 | Django 文档 | Django

简单的说,先创建:

$ python3 -m venv ~/.virtualenvs/djangodev

再激活:

$ source ~/.virtualenvs/djangodev/bin/activate

虚拟环境激活后,使用pip安装:

$ python -m pip install Django

也可以省略上述创建虚拟环境的步骤,直接进行安装

2)在pycharm中直接安装

pycharm打开任意一个项目

pycharm > preference > python interpreter > '+'??> 搜索django

?

2. 创建django项目

1)使用命令行创建项目

django-admin startproject 项目名称

2)? 打开创建的项目

|---Callback # 项目的/目录?

??|---Callback # 项目目录?

??????|---__init__.py?

??????|---settings.py # 配置文件?

??????|---urls.py # 路由系统 ===> url与视图的对应关系?

??????|---wsgi.py # runserver命令就使用wsgiref模块做简单的web server?

|---manage.py # 管理文件

?

3) 创建应用(app)

每一个项目的功能都可以被分成多个app进行开发,可以认为一个app对应一种功能,个人理解相当于python中的封装,开发好的app也可在另一个项目中复用。

?在Terminal中输入:

python3.9 manage.py startapp callbackUrl

注意:具体用python3还是python还是其他的,需要看python interpreter中用的是哪个python,这里我用的是python3.9

?

之后目录树变成:

?

在setting.py的INSTALLED_APPS中添加刚刚创建的app

?

至此就可以愉快的coding啦

3 创建callback_url接口

1) 首先在views.py编写接口的功能函数:

import json

from django.http import HttpResponse

from django.views.decorators.csrf import csrf_exempt

@csrf_exempt

def save_status(request):

????if request.method == 'POST':

????????request_dict = request.body

????????request_dict = json.loads(request_dict)

????????return HttpResponse(request_dict['build_status'])

????else:

????????return HttpResponse(u'error')

2) 在url.py函数中设置url,并关联app的功能函数:

from django.contrib import admin

from django.urls import path

from callbackUrl.views import save_status

urlpatterns = [

????path('admin/', admin.site.urls),

????path('callback/', save_status)? ? ? # path('网址名',功能函数名)

]

3)至此,这个项目已经可以简单跑起来了

如果在本机调试,可以运行:python3.9 manage.py runserver

浏览器打开网址:http://127.0.0.1:8000/callback/

?

4 数据存入数据库

1)根据callback_url接口文档,在models文件中构建数据库类

from django.db import models

class BuildMessage(models.Model):

????build_status = models.CharField(max_length=20)

????callback_id = models.CharField(max_length=50)

????

2)在settings中更改数据库设置,这里使用mysql数据库

DATABASES = {

????'default': {

????????'ENGINE': 'django.db.backends.mysql',

????????'NAME': 'xy', ? # 数据库名

????????'HOST': '127.0.0.1',

????????'POST': 3306,

????????'USER': 'root',

????????# 'PASSWORD':''

????}

}

3)? 创建数据库

运行:python3.9 manage.py makemigrations callbackUrl

之后再运行:python3.9 manage.py migrate callbackUrl?

可以看到,已经出现了创建的表

4)完善功能函数

再回到views.py函数,实现将回调数据写入数据库的功能:

import json

from django.http import HttpResponse

from django.views.decorators.csrf import csrf_exempt

from callbackUrl.models import BuildMessage

@csrf_exempt

def save_status(request):

????if request.method == 'POST':

????????request_dict = request.body

????????request_dict = json.loads(request_dict)

????????return HttpResponse(request_dict['build_status'])

????else:

????????return HttpResponse(u'error')

OK,大功告成!



?

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-10-31 11:52:04  更:2022-10-31 11:55:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 1:42:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码