我们的后端实现的功能是给前端提供返回数据,需要有数据库存储数据,接口实现对数据的操作,然后前端调用我们的接口可以获取到数据。这里我们实现一个工具列表的请求功能。
一:数据层开发
1)首先去Myapp的model.py文件去创建一张表,定义两个字段,工具名字和创建工具的日期
class DB_tool(models.Model):
name = models.CharField(max_length=30,default='')
stime = models.CharField(max_length=20,default='')
def __str__(self):
return self.name
2)同步表结构,在项目根目录执行
python3 manage.py makemigrations
python3 manage.py migrate
3)将数据表在admin.py文件中进行注册
admin.site.register(DB_tool)
经过注册的表就可以在Django后台管理中看到了,在项目根目录启动Django
python3 manage.py runserver
打开后台测试:127.0.0.1:8000/admin/
我们可以在管理后台实现对数据表的增删改查,我们点进去添加几条数据
二:后端接口开发
1)在view.py 文件中写后端接口代码实现逻辑
import json
from django.http import HttpResponse
from Myapp.models import *
# Create your views here.
def get_tools(request):
tools = DB_tool.objects.all()
res = {}
res['tools'] = list(tools.values())
return HttpResponse(json.dumps(res),content_type='application/json')
这段代码的实现逻辑是:从DB_tool中获取全部数据,然后又把它整理后塞到了一个字典res中。
最后又把这个res字典变成json字符串,返回给了浏览器前端。这样写可能有部分朋友看不懂。所以咱到控制台一步步操作看看咱做了啥处理,根目录下输入
python3 manage.py shell
输入如下指令
from Myapp.models import *
tools = DB_tool.objects.all()
print(tools)
可以看到,输出结果是一个QuerySet类型的结果,并且4条数据只显示了一个字段
我们看看tools.value()会输出啥
我们可以看到还是QuerySet类型的结果,但4条数据显示了所有字段。我们还可以看出虽然我们只创建了两个字段,但是id是Django默认给我们创建的
我们看看list(tools.value())会输出啥
我们可以看到数据类型由QuerySet变成了list
然后我们把这个list赋给了res字典的tools键值。然后将字典转成json,传送给前端
这个接口的后端功能虽然完成了,但是url路由等还没有指定
2)urls.py中写路由
path('get_tools/',get_tools),
3)启动Django服务
在项目根目录执行
python3 manage.py runserver
然后浏览器输入
http://127.0.0.1:8000/get_tools/
可以看到接口的返回结果了