当前位置: 首页 > wzjs >正文

新乡市做网站直销系统网站蚁坊软件舆情监测系统

新乡市做网站直销系统网站,蚁坊软件舆情监测系统,网站开发项目怎么接,交通工具网页界面设计前言:本文将详细介绍如何使用 Django 构建一个电影推荐系统,涵盖项目的搭建、数据库设计、视图函数编写、模板渲染以及用户认证等多个方面。🔗软件安装、环境准备 ❤ 【作者主页—📚阅读更多优质文章、获取更多优质源码】 目录 一…

前言:本文将详细介绍如何使用 Django 构建一个电影推荐系统,涵盖项目的搭建、数据库设计、视图函数编写、模板渲染以及用户认证等多个方面。🔗软件安装、环境准备


 【作者主页—📚优质文章、获取更多优质源码】


目录

一 .项目搭建

二.数据库设计 

三.编写视图函数

四.模版渲染 

五.效果展示

六.总结

七.更多干货


一 .项目搭建

首先,我们需要创建一个新的 Django 项目

django-admin startproject demo1
cd demo1

 然后,创建一个名为 movies(自定义) 的应用

python manage.py startapp movies

 在 demo1/settings.py 中进行相关配置,包括数据库、应用安装、模板路径

# demo1/settings.py# 应用安装
INSTALLED_APPS = ["django.contrib.admin","django.contrib.auth","django.contrib.contenttypes","django.contrib.sessions","django.contrib.messages","django.contrib.staticfiles","movies",
]# 数据库配置
DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'movie','USER': 'root','PASSWORD': '123456','HOST': '127.0.0.1','PORT': '3306'}
}# 模板路径配置
TEMPLATES = [{"BACKEND": "django.template.backends.django.DjangoTemplates","DIRS": [os.path.join(BASE_DIR, 'templates')],"APP_DIRS": True,"OPTIONS": {"context_processors": ["django.template.context_processors.debug","django.template.context_processors.request","django.contrib.auth.context_processors.auth","django.contrib.messages.context_processors.messages",],},},
]

二.数据库设计 

 在 movies/models.py 中定义电影和评论的模型

# movies/models.pyfrom django.db import models
from django.contrib.auth.models import Userclass Movie(models.Model):title = models.CharField(max_length=200)description = models.TextField()release_date = models.DateField()director = models.CharField(max_length=100)poster = models.ImageField(upload_to='文件夹名/', blank=True, null=True)average_rating = models.FloatField(default=0)def __str__(self):return self.titleclass Review(models.Model):movie = models.ForeignKey(Movie, on_delete=models.CASCADE, related_name='reviews')user = models.ForeignKey(User, on_delete=models.CASCADE)rating = models.IntegerField(choices=[(i, i) for i in range(1, 6)])comment = models.TextField()created_at = models.DateTimeField(auto_now_add=True)def __str__(self):return f"Review for {self.movie.title} by {self.user.username}"

 创建数据库迁移文件并应用迁移

python manage.py makemigrations
python manage.py migrate

 下图即是正确的数据库表目录

三.编写视图函数

在 movies/views.py 中编写视图函数,实现电影列表、电影详情、添加评论、用户登录和退出功能

# movies/views.pyfrom django.shortcuts import render, redirect, get_object_or_404
from .models import Movie, Review
from django.contrib.auth.decorators import login_required
from django.contrib.auth import authenticate, login, logout
from django.contrib import messages
from django.db.models import Avg
from django.core.paginator import Paginatordef movie_list(request):search_query = request.GET.get('search', '')if search_query:movies = Movie.objects.filter(title__icontains=search_query)else:movies = Movie.objects.all()page_number = request.GET.get('page')page_obj = paginator.get_page(page_number)return render(request, 'movie_list.html', {'page_obj': page_obj, 'search_query': search_query})def movie_detail(request, movie_id):movie = get_object_or_404(Movie, id=movie_id)reviews = movie.reviews.all()return render(request, 'movie_detail.html', {'movie': movie, 'reviews': reviews})@login_required
def add_review(request, movie_id):movie = get_object_or_404(Movie, id=movie_id)if request.method == 'POST':rating = request.POST.get('rating')comment = request.POST.get('comment')Review.objects.create(movie=movie, user=request.user, rating=rating, comment=comment)# 更新电影平均评分movie.average_rating = movie.reviews.aggregate(Avg('rating'))['rating__avg']movie.save()return redirect('movie_detail', movie_id=movie.id)return render(request, 'add_review.html', {'movie': movie})def user_login(request):if request.method == 'POST':username = request.POST.get('username')password = request.POST.get('password')user = authenticate(request, username=username, password=password)if user is not None:login(request, user)return redirect('movie_list')else:messages.error(request, '用户名或密码错误')return render(request, 'login.html')@login_required
def user_logout(request):logout(request)return redirect('movie_list')

四.模版渲染 

 在 movies/templates 目录下创建相应的 HTML 模板文件,用于展示电影列表、电影详情、添加评论和用户登录页面。

电影列表模板 movie_list.html 

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>电影推荐系统</title>
----------------- css样式代码省略 -----------------
</head><body><nav><h1>电影推荐系统</h1><form action="" method="get"><input type="text" name="search" placeholder="搜索电影"><input type="submit" value="搜索"></form>{% if user.is_authenticated %}<a href="{% url 'user_logout' %}">退出登录</a>{% else %}<a href="{% url 'user_login' %}">登录</a>{% endif %}</nav><div class="movie-container">{% for movie in page_obj %}<div class="movie-card">{% if movie.poster %}<img src="{{ movie.poster.url }}" alt="{{ movie.title }}">{% else %}<img src="https://dummyimage.com/200x300/000/fff&text=No+Poster" alt="{{ movie.title }}">{% endif %}<div class="movie-info"><h2>{{ movie.title }}</h2><p>评分: {{ movie.average_rating }}</p><a href="{% url 'movie_detail' movie.id %}">查看详情</a></div></div>{% endfor %}</div><div class="pagination">{% if page_obj.has_previous %}<a href="?page=1">&laquo; 第一页</a><a href="?page={{ page_obj.previous_page_number }}">上一页</a>{% endif %}<span class="current">第 {{ page_obj.number }} 页,共 {{ page_obj.paginator.num_pages }} 页。</span>{% if page_obj.has_next %}<a href="?page={{ page_obj.next_page_number }}">下一页</a><a href="?page={{ page_obj.paginator.num_pages }}">最后一页 &raquo;</a>{% endif %}</div>
</body></html>

 电影详情模板 movie_detail.html

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>{{ movie.title }} 详情</title>
-------------------- css样式代码省略 --------------------
</head><body><h1>{{ movie.title }}</h1><div class="movie-detail">{% if movie.poster %}<div class="movie-poster"><img src="{{ movie.poster.url }}" alt="{{ movie.title }}"></div>{% else %}<div class="movie-poster"><img src="https://dummyimage.com/300x450/000/fff&text=No+Poster" alt="{{ movie.title }}"></div>{% endif %}<div class="movie-info"><p>导演: {{ movie.director }}</p><p>上映日期: {{ movie.release_date }}</p><p>描述: {{ movie.description }}</p><p>评分: {{ movie.average_rating }}</p>{% if user.is_authenticated %}<a href="{% url 'add_review' movie.id %}">添加评论</a>{% endif %}</div></div><h2>用户评论</h2>{% for review in reviews %}<div class="review"><p>用户: {{ review.user.username }}</p><p>评分: {{ review.rating }}</p><p>评论: {{ review.comment }}</p><p>时间: {{ review.created_at|date:"Y-m-d"  }}</p></div>{% endfor %}
</body></html>

五.效果展示

六.总结

希望本文对你有所帮助,如果你有任何疑问或建议,欢迎在评论区留言。

以上文章详细介绍了如何使用 Django 构建电影推荐系统,从项目搭建到功能实现,每个步骤都有相应的代码示例。你可以根据自己的需求进行修改和扩展。

七.更多干货

--------------------- - -----✈---------   ---------✈--------------------✈-------
1.如果我的博客对你有帮助或你喜欢我的博客内容,请 “👍点赞” “✍️评论” “★收藏” 一键三连哦!

2.❤️【👇🏻👇🏻👇🏻关注我| 获取更多源码 | 优质文章】 带您学习各种前端插件、3D炫酷效果、图片展示、文字效果、以及整站模板 、HTML模板 、微信小程序模板 、等! 「在这里一起探讨知识,互相学习」!

3.以上内容技术相关问题✉欢迎一起交流学习 ☟   ☟   ☟
————————————————

http://www.dtcms.com/wzjs/137748.html

相关文章:

  • 做平台的网站有哪些内容如何让百度收录自己的网站
  • 网站制作文案广州seo优化公司
  • 国外ps网站网站怎么找
  • 市网站制作百度手机助手下载安装
  • 怎么搭建一个小程序沈阳关键字优化公司
  • 禄劝彝族苗族网站建设网络关键词
  • 网站分类主要有哪些西安网络推广优化培训
  • 不用登录的小游戏网站关键词seo排名公司
  • 中国疫情最新公布数据seo策略是什么意思
  • 郑州市官网廊坊seo关键词优化
  • 固安建站公司每日舆情信息报送
  • 有个新网站能提供百度站长seo
  • 怎么给别人做网站网络推广与推广
  • 怎样如何做网站百度一下你就知道下载安装
  • 网站做超链接的方式有哪些自己建网站的详细步骤
  • 山东中佛龙建设有限公司网站seo按照搜索引擎的
  • 织梦系统做网站信息推广平台有哪些
  • 什么牛网站建设百度推广外包哪家不错
  • 门户网站模板html5it教育培训机构
  • 中学院新校区建设专题网站海外推广方法有哪些
  • 贵州中英文网站制作怎么自己做个网站
  • 北流网站制作学习软件的网站
  • 如何做体育彩票网站万网
  • 国外设计文章的网站长春网站制作企业
  • 优秀网站建设结构优化设计
  • 网站建设一个月做十单简短的软文范例
  • 那个网站做3d搜索引擎优化营销
  • 深圳西乡做网站重庆seo外包平台
  • 做问卷哪个网站好seo数据监控平台
  • 信用网站建设产品seo标题是什么