注意:本教程实现的是SpringBoot 调用 Django 中的http接口,调用Django 的接口是为了更好的模拟项目流程。如果只想要理解调用过程,使用springBoot 调用springBoot 会更好。主要使用feign web service 客户端!
Django1、 安装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大家都应该用过,教程省略创建项目以及相关配置
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
}
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、 访问,得到的结果应该是:



