栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

SpringBoot 通过 Feign 调用Django 接口

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot 通过 Feign 调用Django 接口

注意:本教程实现的是SpringBoot 调用 Django 中的http接口,调用Django 的接口是为了更好的模拟项目流程。如果只想要理解调用过程,使用springBoot 调用springBoot 会更好。主要使用feign web service 客户端!

Django

1、 安装Django
pip install Django (确保有pip 和 python环境)
2、 使用pycharm 创建一个Django 项目
3、 修改setting.py 中的配置主要是配置数据库,可以使用别的,我这里使用了mysql

DATABASES = {
‘default’: {
‘ENGINE’: ‘django.db.backends.mysql’,
‘NAME’: ‘xxxxxxxxxxxxx’, # 数据库
‘HOST’ : ‘127.0.0.1’,
‘PORT’ : 3306,
‘USER’:xxxx,
‘PASSWORD’:‘xxxxxxxxxxx’ #密码
}
}
4、 创建一个新的app,使用命令
python manage.py startapp searchTest
5、 在setting.py 添加此app
INSTALLED_APPS = [
‘django.contrib.admin’,
‘django.contrib.auth’,
‘django.contrib.contenttypes’,
‘django.contrib.sessions’,
‘django.contrib.messages’,
‘django.contrib.staticfiles’,
‘searchTest’,
]

6、 searchTest 中创建一个新的model,测试查询用

from django.db import models

class Student(models.Model):
stuId = models.IntegerField()
name = models.CharField(max_length=255)

7、 执行数据库迁移:
python manage.py makemigrations
python manage.py migrate
如果报错,大概率是因为没有驱动,按照提示pip 下载即可
8、 在searchTest 的views 中添加如下代码,主要是查询并且转化为json传输
from searchTest.models import Student
from django.http import JsonResponse

def searchAll(request):
json_data = list(Student.objects.values())
# 使用django 添加
stuDic = {‘id’: 1, ‘stuId’: 1, ‘name’: ‘DjangoAdd’}
json_data.append(stuDic)
return JsonResponse({‘data’: json_data})
9、 在创建的project 下的urls 中配置好路由,如下:
from django.contrib import admin
from django.urls import path
from searchTest import views as searchView

urlpatterns = [
path(‘admin/’, admin.site.urls),
path(‘searchAllStu’, searchView.searchAll)
]
10、 开启项目输入地址,测试,在测试之前,需要向数据库中添加数据,无论是用远程工具还是后台管理 还是代码添加均可,查询出来的数据结构应该是这样的:

至此,django 部分完成!

SpringBoot

springBoot大家都应该用过,教程省略创建项目以及相关配置

1、 在pom.xml 中导入feign 依赖,注意和springBoot的版本要匹配,我这里使用的是springBoot 2.6.2

org.springframework.cloud
spring-cloud-starter-openfeign
3.1.1

2、 在service 中添加一个接口,用来和调用django, name随便起, url 是主机地址和端口,value = “/searchAllStu” 是调用路由地址
@FeignClient(url = “http://127.0.0.1:8000”,name = “djangoSearch”)
public interface DrugSpaceTestService {
@RequestMapping(value = “/searchAllStu”, method = RequestMethod.GET)
HashMap getAllStu();
}

3、 在controller 层调用即可,记得注入service
@RestController
@RequestMapping(“/drugSpace”)
public class DrugBanksHandler {

// 注入Service
@Resource
private DrugSpaceTestService Drugservice;

@GetMapping("/searchStu")
public Result downloadFile(){
    System.out.println("请求到了");
    HashMap hashMap = new HashMap();
    try {
         hashMap = Drugservice.getAllStu();
        System.out.println(hashMap);
    }catch (Exception e) {
        System.out.println("请求异常" + e);
    }
    hashMap.put("hello","springBoot add");
    return Result.success(hashMap);
}

}

4、 开启项目之前,记得在启动类上加入注解,允许feign
@EnableFeignClients
5、 访问,得到的结果应该是:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/829364.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号