python实战项目前后端分离_基于Python的前后端分离项目学习笔记二

一、从数据库读取数据,在views.py中写入代码,如:

from django.http importJsonResponsefrom apps.market.models importUser#Create your views here.

#从数据库获取用户数据

defget_Users(request):try:#使用ORM获取所有用户信息 并把对象转为字典格式

obj_users =User.objects.all().values()#把外层的容器转为List

users =list(obj_users)#返回

return JsonResponse({'code': 1, 'data': users})exceptException as e:#如果出现异常,返回

return JsonResponse({'code': 0, 'msg': "获取用户信息出现异常,具体错误:" + str(e)})

二、在urls.py中添加代码,以便前端能够访问到数据,如:

urlpatterns =[

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

path('goods/', views.get_Goods),//添加该行代码

]

三、在setting.py的ALLOWED_HOSTS中添加本机ip,如:

ALLOWED_HOSTS = ['192.168.182.128']

四、在前端的js文件中添加使用axios请求后端数据的函数,如:

//获取所有物品信息

getGoods: function() {//使用axios实现ajax请求

let that = thisaxios

.get(that.baseURL+ 'goods/')

.then(function(res) {//请求成功后执行的函数

if (res.data.code === 1)

{

that.goods=res.data.datafor(g of that.goods)

{

g.image= that.baseURL+'media/'+g.image

}

that.goodsTotal=res.data.data.length

that.displayGoods=that.goods

}else

//失败的提示!

that.$message.error(res.data.msg)

}

)

.catch(function(err) {//请求失败后执行的函数

console.log(err)

}

)

},

五、解决axios的跨域请求问题,在终端输入pip install django-cors-headers,然后在setting.py的INSTALLED_APPS中添加corsheaders,接着在setting.py的MIDDLEWARE中添加corsheaders.middleware.CorsMiddleware。最后在setting.py中添加代码:

#添加Cors配置#1. 设置白名单,凡是出现在白名单的域名都可以访问后端

CORS_ORIGIN_WHITELIST = ('http://127.0.0.1:8080',)#2. 是指Cors Cookie

CORS_ALLOW_CREDENTIALS = True

六、前端向后端发送数据,如搜索信息:

queryGoods:function() {//搜索物品

let that = this

//开始Ajax请求

axios

.post(

that.baseURL+ "query/",

{

inputstr: that.inputStr,

item: that.selectItem,

}

)

.then(function(res) {if (res.data.code === 1) {//把数据给displaygoods

that.displayGoods =res.data.data;

console.log(res.data.data.length)//提示:

that.$message({

message:'查询数据加载成功!',

type:'success'});

}else{//失败的提示!

that.$message.error(res.data.msg);

}

})

.catch(function(err) {

console.log(err);

that.$message.error("获取后端查询结果出现异常!");

});

}

七、前端访问后端图片,

1)现在后端根目录创建media文件夹;

2)将图片储存在media中;

3)在setting.py中添加代码

#设置上传文件的目录和外部访问的路径

MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')

MEDIA_URL= '/media/'

4)在url.py中添加代码:

from django.conf.urls.static import static

#添加这行--- 允许所有的media文件被访问

urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

如访问图片sadf54sad1as.jpg:

本门课程重实战,将基础知识拆解到项目里,让你在项目情境里学知识。 这样的学习方式能让你保持兴趣、充满动力,时刻知道学的东西能用在哪、能怎么用。 平时不明白的知识点,放在项目里去理解就恍然大悟了。   一、融汇贯通 本视频采用了前后端分离的开发模式,前端使用Vue.js+Element UI实现了Web页面的呈现,后端使用Python 的Django框架实现了数据访问的接口,前端通过Axios访问后端接口获得数据。在学习完本章节后,真正理解前后端的各自承担的工作。   、贴近实战 本系列课程为练手项目实战:学生管理系统v4.0的开发,项目包含了如下几个内容:项目的总体介绍、基本功能的演示、Vuejs的初始化、Element UI的使用、在Django中实现针对数据的增删改查的接口、在Vuejs中实现前端增删改查的调用、实现文件的上传、实现表格的分页、实现导出数据到Excel、实现通过Excel导入数据、实现针对表格的批量化操作等等,所有的功能都通过演示完成、贴近了实战   三、课程亮点 在本案例中,最大的亮点在于前后端做了分离,真正理解前后端的各自承担的工作。前端如何和后端交互   适合人群: 1、有Python语言基础、web前端基础,想要深入学习Python Web框架的朋友; 2、有Django基础,但是想学习企业级项目实战的朋友; 3、有MySQL数据库基础的朋友  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值