背景:
基于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,大功告成!
Original: https://blog.csdn.net/weixin_47164283/article/details/127536864
Author: 进阶的小幺
Title: Django创建回调接口api
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/734348/
转载文章受原作者版权保护。转载请注明原作者出处!