实训总结---爱家租房---django Love The Way You Lie 2022-12-07 11:49 133阅读 0赞 一:七牛云的使用: 1:安装七牛云: pip install qiniu -i https://pypi.tuna.tsinghua.edu.cn/simple 2:初始化:AccessKey和SecretKey签名的授权: 注:AK与SK虚假 1:AK: WzrwnBQ6hLKzA3H3jsLt66VwFru-KAZ91AGcg9ao39 2: SK : SlnL8kEgvatZao5dhB88nLy-PAIkdd2GeaPJy7JB1- 3: 七牛云空间名字: homepicture 3:封装一个工具类:如果上传成功返回七牛云生成的图片的key,如果上传失败,抛出异常,调用的视图通过捕获异常决定是否上传成功。 ihome/utils/image\_storage from qiniu import Auth, put_file, etag from qiniu import put_data import qiniu.config # 需要填写你的 Access Key 和 Secret Key access_key = 'WzrwnBQ6hLKzA3H3jsLtVwFru-KAZ91AGcg9ao39' secret_key = 'SlnL8kEgvatZao5dhBnLy-PAIkdd2GeaPJy7JB1-' def storage(file_data): """ 上传文件到七牛服务器 :param file_data: 要上传的文件数据 :return: """ # 构建鉴权对象 q = Auth(access_key, secret_key) # 要上传的空间 bucket_name = 'homepicture' # 生成上传 Token,可以指定过期时间等 token = q.upload_token(bucket_name, None, 3600) ret, info = put_data(token, None, file_data) if info.status_code == 200: # 上传成功,返回图片的名字key return ret.get('key') else: # 上传失败,抛出异常 raise Exception('上传七牛失败') 4:上传顾客头像视图:ihome/users/set\_user\_avatar\_View class set_user_avatar_View(View): def post(self, request): user = request.user # 1:提取参数 image_file = request.FILES.get('avatar',None) # 2:校验参数 if image_file is None: return JsonResponse({ "code": 400, "errmsg": "图片没有输入,不能上传" }, status=400) # 3:数据处理---读取数据(二进制),上传到七牛云,将返回的地址,保存到数据库 image_data = image_file.read() try: file_name = storage(image_data) except Exception as e: return JsonResponse({ "code":400, "errmsg": "图片上传失败" }) try: User.objects.filter(pk=user.id).update(avatar=file_name) except Exception as e: print(e) return JsonResponse({ "code": 400, "errmsg": "图片保存失败" }) avatar_url = constants.QINIU_DOMIN_PREFIX + file_name # avatar_url = "http://qglpphun0.hn-bkt.clouddn.com/" + file_name # 4:构建响应 return JsonResponse({ "errno": 0, "errmsg": "ok", "data": { "avatar_url": avatar_url}, }) 5:路由: from django.urls import re_path from . import views urlpatterns = [ re_path(r'^users$',views.RegisterView.as_view()), re_path(r'^session$',views.LoginView.as_view()), re_path(r'^user$',views.self_center_view.as_view()), re_path(r'^user/avatar$',views.set_user_avatar_View.as_view()), ] 6:修改配置:utils/constants.py # 七牛空间域名 QINIU_DOMIN_PREFIX = "http://qglpphun0.hn-bkt.clouddn.com/" 7:上传房源图片: from django.http import JsonResponse from django.views import View from ihome.utils import constants from homes.models import House, HouseImage from ihome.utils.image_storage import storage class Hose_sourse_View(View): def post(self, request, house_id): print(house_id) # 1:提取参数 image_file = request.FILES.get('house_image', None) # 2:校验参数 if image_file is None: return JsonResponse({ "errno": 400, "errmsg": "图片没有输入,不能上传" }, status=400) # 3:数据处理---读取数据(二进制),上传到七牛云,将返回的地址,保存到数据库 image_data = image_file.read() try: file_name = storage(image_data) except Exception as e: return JsonResponse({ "code": 400, "errmsg": "图片上传失败" }) try: # house = HouseImage.objects.create(house=house_id, url=file_name) print(house_id) house = House.objects.get(pk=house_id) house.index_image_url = file_name house.save() except Exception as e: print(e) return JsonResponse({ "code": 400, "errmsg": "图片保存失败" }) url = constants.QINIU_DOMIN_PREFIX + file_name # 4:构建响应 return JsonResponse({ "data": { "url": url }, "errno": "0", "errmsg": "图片上传成功", }) 路由: from django.urls import re_path from homes import views urlpatterns = [ re_path(r'^houses/(?P<house_id>\d+)/images$', views.Hose_sourse_View.as_view()), ] 二:两个日期相减 days = datetime.datetime.strptime(end_date,'%Y-%m-%d') - datetime.datetime.strptime(start_date,'%Y-%m-%d') 这个days是个日期对象 days=days.days days.days得到整数days
相关 大四实训第一天总结 今天从下午两点半开始实训,下午基本都在讲一些java基本的内容,主要是快速进入学习状态,难度其实不是很大。做了两个简单的小实例,和大二那会刚学java差不多。 然后晚上也很水 布满荆棘的人生/ 2023年08月17日 16:58/ 0 赞/ 155 阅读
相关 2002A实训 1. git&github 链接:[https://blog.csdn.net/weixin\_43638968/article/details/10936106 àì夳堔傛蜴生んèń/ 2022年12月27日 15:28/ 0 赞/ 210 阅读
相关 中级实训总结报告 目录【阅读时间:约30分钟】 中级实训总结报告 姓名:隐藏敏感信息 学号:隐藏敏感信息 一、阶段1:项目启动 素颜马尾好姑娘i/ 2022年12月18日 14:59/ 0 赞/ 297 阅读
相关 实训总结---爱家租房---django 一:七牛云的使用: 1:安装七牛云: pip install qiniu -i https://pypi.tuna.tsinghua.edu.cn/simple Love The Way You Lie/ 2022年12月07日 11:49/ 0 赞/ 134 阅读
相关 前端实训路线图 1. 小程序语法+项目 (黑马优购+天使童装) 2. vue后台管理系统 (商城管理系统+网课后台) 3. vue移动端项目 (每时每刻) 4. ts 5. vue3 朴灿烈づ我的快乐病毒、/ 2022年11月16日 10:52/ 0 赞/ 203 阅读
相关 java实训报告怎么写_Java实训报告 很多同学在大学里面参加完Java实训之后,学校的老师会要求每个人写一份Java实训报告,对于学习理科计算机专业的你来说,写几万行的代码可能不是什么问题,但是让写一份800字的实 左手的ㄟ右手/ 2022年11月04日 00:44/ 0 赞/ 270 阅读
相关 实训python的日记_Python实训---第二天 Python实训---第二天 turtle简易GUI绘图 import turtle as t t.pensize(10) \设置画笔颜色为蓝色 t.color('p Bertha 。/ 2022年10月28日 12:24/ 0 赞/ 283 阅读
相关 计算机课程实训总结,计算机实训总结优秀范文 随着高校计算机课程的普及,计算机实训室已经成为高校办学能力的重要评估条件之一,承担着全校计算机基础课程及计算机专业课程的教学工作,成为提高学生计算机水平的主要载体,成为开展计算 系统管理员/ 2022年10月19日 05:48/ 0 赞/ 227 阅读
相关 Java实训总结 截止到今天中午12.,为期一周的Java实训接近了尾声,本来以为这一个星期会很难熬,因为这个实训把我们美好的星期6,星期7给完美的利用了,结果发现这一个星期其实过的还是挺快的, 水深无声/ 2022年04月10日 07:20/ 0 赞/ 311 阅读
还没有评论,来说两句吧...