如何用AI图像分层工具3分钟实现专业插画图层分离
2026/6/4 20:14:02
博主介绍:✌全网粉丝10W+,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业项目实战6年之久,选择我们就是选择放心、选择安心毕业✌
> 🍅想要获取完整文章或者源码,或者代做,拉到文章底部即可与我联系了。🍅点击查看作者主页,了解更多项目!
🍅感兴趣的可以先收藏起来,点赞、关注不迷路,大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助同学们顺利毕业 。🍅
1、毕业设计:2026年计算机专业毕业设计选题汇总(建议收藏)✅
2、大数据毕业设计:2026年选题大全 深度学习 python语言 JAVA语言 hadoop和spark(建议收藏)✅
本项目是基于Python+Django框架开发的电影个性化推荐与分析系统,整合协同过滤算法、Echarts可视化、词云分析与MySQL数据库,核心实现“用户交互-个性化推荐-数据可视化”的完整流程,旨在解决电影筛选低效、推荐不精准、数据洞察不足的问题。
# 验证登录defcheck_login(func):defwrapper(request):# print("装饰器验证登录")cookie=request.COOKIES.get('uid')ifnotcookie:returnredirect('/login/')else:returnfunc(request)returnwrapper# Create your views here.@check_logindefindex(request):uid=int(request.COOKIES.get('uid',-1))ifuid!=-1:username=User.objects.filter(id=uid)[0].name relions=Movie.objects.all()all_type={item.regionsforiteminrelions}# all_type = ['历城', '天桥', '长清', '章丘', '高新', '市中', '济阳', '槐荫', '历下']if'type'notinrequest.GET:# 新闻类别type_='中国大陆'newlist=Movie.objects.filter(regions__contains=type_).values()else:type_=request.GET.get('type')newlist=Movie.objects.filter(regions__contains=type_).values()tmp=[]foriteminnewlist:ifLike.objects.filter(uid_id=uid,hid_id=item['id']):is_like=1else:is_like=0item['is_like']=is_like tmp.append(item)newlist=tmpreturnrender(request,'index.html',locals())defstar_ajax(request):res={}yid=int(request.POST.get('id'))uid=int(request.COOKIES.get('uid',-1))ifLike.objects.filter(uid_id=uid,hid_id=yid):Like.objects.filter(uid_id=uid,hid_id=yid).delete()res['color']='black'else:Like.objects.create(uid_id=uid,hid_id=yid)res['color']='red'returnJsonResponse(res)defmy_shoucang(request):uid=int(request.COOKIES.get('uid',-1))ifuid!=-1:username=User.objects.filter(id=uid)[0].name newlist=[]ifLike.objects.filter(uid_id=uid):newlist=Like.objects.filter(uid_id=uid)id_list=[item.hid_idforiteminnewlist]newlist=Movie.objects.filter(id__in=id_list).values()tmp=[]foriteminnewlist:ifLike.objects.filter(uid_id=uid,hid_id=item['id']):is_like=1else:is_like=0item['is_like']=is_like tmp.append(item)newlist=tmpreturnrender(request,'my_shoucang.html',locals())@check_logindefdetail(request):uid=int(request.COOKIES.get('uid',-1))ifuid!=-1:username=User.objects.filter(id=uid)[0].name id_=request.GET.get('id')info=House.objects.get(id=int(id_))ifSee.objects.filter(uid_id=uid):See.objects.filter(uid_id=uid).update(num=F('num')+1)else:See.objects.create(uid_id=uid,hid_id=int(id_),num=1)returnrender(request,'detail_new.html',locals())defscrawl_item(request):""" 爬取所有的电影元数据 :param request: :return: """foriintqdm(range(0,201,20)):# url = f'https://movie.douban.com/j/chart/top_list?type=10&interval_id=10:90&action=None&start={i}&limit=20'url="https://movie.douban.com/j/chart/top_list"payload={"type":10,"interval_id":"100:90","action":None,"start":i,"limit":20}headers={"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36"}res=requests.get(url=url,params=payload,headers=headers,)time.sleep(10)data_jsons=res.json()fordata_jsonindata_jsons:id_=data_json['id']# intid_=int(id_)# rating = data_json['rating'][0]# floatrank=data_json['rank']# intrank=int(rank)img=data_json['cover_url']isPlayable=data_json['is_playable']kind=data_json['types']# listkind=','.join(kind)regions=data_json['regions'][0]title=data_json['title']url=data_json['url']releaseDate=data_json['release_date']actorCount=data_json['actor_count']# intactorCount=int(actorCount)voteNum=data_json['vote_count']# intvoteNum=int(voteNum)score=data_json['score']# floatscore=float(score)actors=data_json['actors']# listactors=','.join(actors)# print(id_,rank,img,isPlayable,kind,regions,title,url,releaseDate,actorCount,voteNum,score,actors)ifnotMovie.objects.filter(id=id_):try:Movie.objects.create(id=id_,rank=rank,img=img,isPlayable=isPlayable,kind=kind,regions=regions,title=title,url=url,releaseDate=releaseDate,actorCount=actorCount,voteNum=voteNum,score=score,actors=actors)except:continuereturnHttpResponse('全部电影元数据已经爬取OK')defscrawl_comment(request):""" 爬取所有的电影元数据 :param request: :return: """returnHttpResponse('全部电影评论已经爬取OK')@check_logindeftuijian(request):uid=int(request.COOKIES.get('uid',-1))ifuid!=-1:username=User.objects.filter(id=uid)[0].name train=dict()history=Like.objects.all()# 0.1foriteminhistory:ifitem.uid_idnotintrain.keys():train[item.uid_id]={item.hid_id:uid}else:train[item.uid_id][item.hid_id]=train[item.uid_id].get(item.hid_id,0)+10history=See.objects.all()# 0.1foriteminhistory:ifitem.uid_idnotintrain.keys():train[item.uid_id]={item.hid_id:0.1*item.num}else:train[item.uid_id][item.hid_id]=train[item.uid_id].get(item.hid_id,0)+1*item.num# 声明一个的对象newlist=[]try:item=KNN(train)item.ItemSimilarity()recommedDict=item.Recommend(int(uid))# 字典newlist=Movie.objects.filter(id__in=list(recommedDict.keys()))except:print("协同过滤异常啦")passiflen(newlist)==0:msg="你还没有在该网站有过评论、浏览行为,请去浏览吧!"newlist=Movie.objects.order_by('-id')[:10].values()else:msg=""#tmp=[]print(newlist)foriteminnewlist:try:id=item["id"]except:id=item.idifLike.objects.filter(uid_id=uid,hid_id=id):is_like=1else:is_like=0try:item['is_like']=is_likeexcept:item.is_like=is_like tmp.append(item)newlist=tmpreturnrender(request,'tuijian.html',locals())deftest(request):returnHttpResponse('测试完成')@check_logindefsearch(request):uid=int(request.COOKIES.get('uid',-1))ifuid!=-1:username=User.objects.filter(id=uid)[0].name newlist=[]ifrequest.method=='POST':keywords=request.POST.get('keywords')newlist=Movie.objects.filter(title__contains=keywords).values()tmp=[]foriteminnewlist:ifLike.objects.filter(uid_id=uid,hid_id=item['id']):is_like=1else:is_like=0item['is_like']=is_like tmp.append(item)newlist=tmpelse:keywords=''returnrender(request,'search.html',locals())deflogin(request):ifrequest.method=="POST":tel,pwd=request.POST.get('tel'),request.POST.get('pwd')ifUser.objects.filter(tel=tel,password=pwd):obj=redirect('/')obj.set_cookie('uid',User.objects.filter(tel=tel,password=pwd)[0].id,max_age=60*60*24)returnobjelse:msg="用户信息错误,请重新输入!!"returnrender(request,'login.html',locals())else:returnrender(request,'login.html',locals())defregister(request):ifrequest.method=="POST":name,tel,pwd=request.POST.get('name'),request.POST.get('tel'),request.POST.get('pwd')print(name,tel,pwd)ifUser.objects.filter(tel=tel):msg="你已经有账号了,请登录"else:User.objects.create(name=name,tel=tel,password=pwd)msg="注册成功,请登录!"returnrender(request,'login.html',locals())else:msg=""returnrender(request,'register.html',locals())deflogout(request):obj=redirect('/')obj.delete_cookie('uid')returnobjdefplot(request):raw_data=Movie.objects.all()# 1 每个国家 电影排行榜main1=raw_data.values('regions').annotate(count=Count('regions')).order_by('-count')[:10]main1_x=[item['regions']foriteminmain1]main1_y=[item['count']foriteminmain1]# 2 每年电影排行year_list=list(range(1999,2020))main2_x=year_list main2_y=[]foryearinyear_list:main2_y.append(raw_data.filter(releaseDate__year=year).count())# print(main1)# 3 类别被购买前十tmp=[item.actorsforiteminraw_data]result_list=[]foritemintmp:result_list=result_list+item.split(',')result_dict={k:result_list.count(k)forkinresult_list}result_dict=sorted(result_dict.items(),key=lambdax:x[1],reverse=True)# 最大到最小print(result_dict)main3=[{'value':item[1],'name':item[0]}foriteminresult_dict]tmp=[item.kindforiteminraw_data]result_list=[]foritemintmp:result_list=result_list+item.split(',')result_dict={k:result_list.count(k)forkinresult_list}result_dict=sorted(result_dict.items(),key=lambdax:x[1],reverse=True)[:5]# 最大到最小print(result_dict)main4=[{'value':item[1],'name':item[0]}foriteminresult_dict]main4_x=[item['name']foriteminmain4]returnrender(request,'plot.html',locals())🍅由于篇幅限制,获取完整文章或源码、代做项目的,查看我的【用户名】、【专栏名称】、【顶部选题链接】就可以找到我啦🍅
感兴趣的可以先收藏起来,点赞、关注不迷路,下方查看👇🏻获取联系方式👇🏻