旅游推荐系统(urls.py配置URL)

urls.py

cpp 复制代码
from django.urls import path
# 从django.urls模块导入path函数
# path函数用于定义URL路径与视图函数的映射关系

from app import views
# 从当前项目的app模块导入views视图文件
# views.py中包含了所有处理请求的函数

urlpatterns = [
    # urlpatterns是一个列表,定义了所有URL路由规则
    # Django会按照列表顺序依次匹配用户请求的URL
    # 一旦找到匹配的规则,就调用对应的视图函数处理请求

# ====================== 用户认证相关 ======================

    path('login/', views.login, name='login'),
    # 定义登录页面的URL路由
    # 'login/':用户访问的URL路径,例如 http://127.0.0.1:8000/login/
    # views.login:处理该请求的视图函数,在views.py中定义
    # name='login':给这个URL起一个名字,方便在模板中反向解析
    # 例如在HTML中可以用 {% url 'login' %} 生成登录页面的链接

    path('register/', views.register, name='register'),
    # 定义注册页面的URL路由
    # 用户访问 /register/ 时会调用views.register函数

    path('logOut/', views.logOut, name='logOut'),
    # 定义退出登录的URL路由
    # 用户访问 /logOut/ 时会调用views.logOut函数
    # 通常这个视图会清除用户的登录状态并重定向到首页

# ====================== 用户中心相关 ======================

    path('home/', views.home, name='home'),
    # 定义系统首页的URL路由
    # 用户登录后看到的个人主页

    path('changeSelfInfo/', views.changeSelfInfo, name='changeSelfInfo'),
    # 定义修改个人信息的URL路由
    # 用户访问 /changeSelfInfo/ 时可以修改自己的资料

    path('changePassword/', views.changePassword, name='changePassword'),
    # 定义修改密码的URL路由
    # 用户访问 /changePassword/ 时可以修改登录密码

# ====================== 数据展示相关 ======================

    path('tableData/', views.tableData, name='tableData'),
    # 定义表格数据展示页面的URL路由
    # 用于以表格形式展示所有景点数据

    path('addComments/<int:id>', views.addComments, name='addComments'),
    # 定义添加评论的URL路由,带有动态参数
    # '<int:id>':URL路径中的动态部分,int表示参数必须是整数
    # 例如用户访问 /addComments/123 时,id参数的值就是123
    # 这个id通常是景点的主键,用于标识要对哪个景点添加评论

# ====================== 数据可视化相关 ======================

    path('cityChar/', views.cityChar, name='cityChar'),
    # 定义城市分布图表的URL路由
    # 生成景点按城市分布的统计图表(可能是柱状图)

    path('rateChar/', views.rateChar, name='rateChar'),
    # 定义评分分布图表的URL路由
    # 生成景点评分分布的统计图表(可能是直方图)

    path('priceChar/', views.priceChar, name='priceChar'),
    # 定义价格分布图表的URL路由
    # 生成景点价格分布的统计图表

    path('commentsChar/', views.commentsChar, name='commentsChar'),
    # 定义评论数量分布图表的URL路由
    # 生成景点评论数量的统计图表

# ====================== 推荐功能相关 ======================

    path('recommendation/', views.recommendation, name='recommendation'),
    # 定义个性化推荐页面的URL路由
    # 调用协同过滤算法,为用户生成个性化景点推荐列表

# ====================== 文本分析相关 ======================

    path('detailIntroCloud/', views.detailIntroCloud, name='detailIntroCloud'),
    # 定义景点介绍词云图的URL路由
    # 对景点详细介绍文本进行词频分析,生成词云图
    # 展示景点介绍中的高频关键词

    path('commentContentCloud/', views.commentContentCloud, name='commentContentCloud'),
    # 定义评论内容词云图的URL路由
    # 对用户评论内容进行词频分析,生成词云图
    # 展示用户评论中的高频关键词,反映用户关注点
]

上述代码是Django项目的URL路由配置文件,用于定义网站中不同网址对应的处理函数。

它创建了16个URL路由规则,将用户访问的每个网址映射到views.py中对应的视图函数:

  • 用户认证相关:登录、注册、登出、修改个人信息、修改密码

  • 数据展示相关:首页、表格数据、景点详情、城市分布、评分分布、价格趋势、评论分析

  • 推荐功能相关:个性化推荐页面

  • 数据可视化相关:景点介绍词云、评论内容词云

每个path定义了URL路径(如login/)、对应的视图函数(如views.login)和URL名称(如name='login'),便于在模板中通过名称反向解析URL。这个文件是连接用户请求与后端逻辑的桥梁。

类别 URL路径 功能
用户认证 login/、register/、logOut/ 登录、注册、退出
用户中心 home/、changeSelfInfo/、changePassword/ 个人主页、修改信息
数据展示 tableData/、addComments/ 表格展示、添加评论
可视化 cityChar/、rateChar/、priceChar/、commentsChar/ 各类统计图表
推荐功能 recommendation/ 个性化推荐
文本分析 detailIntroCloud/、commentContentCloud/ 词云图分析

这个文件的作用是定义网站的所有访问入口,当用户在浏览器中输入网址时,Django根据这些规则找到对应的处理函数,返回相应的网页内容。

为什么要配置URL

将网址映射到具体功能

用户在浏览器输入不同的网址,期望看到不同的内容:

用户输入 期望看到 URL配置的作用
www.我的网站.com/login/ 登录页面 告诉Django:这个地址对应登录功能
www.我的网站.com/register/ 注册页面 告诉Django:这个地址对应注册功能
www.我的网站.com/recommendation/ 推荐结果 告诉Django:这个地址对应推荐算法

如果没有URL配置,服务器收到请求后不知道应该执行哪段代码,只能返回404错误。

cpp 复制代码
from django.contrib import admin
# 导入Django内置的后台管理模块
# admin是Django自动生成的管理界面,可以方便地管理数据库数据

from django.urls import path, include
# 从django.urls导入两个核心函数
# path:用于定义单个URL路由规则
# include:用于引入其他应用的URL配置文件,实现模块化

from django.conf import settings
# 导入项目的配置文件settings.py
# settings.py中定义了项目的所有配置,如数据库连接、媒体文件路径等

from django.conf.urls.static import static
# 导入static辅助函数,用于开发环境下提供媒体文件的访问服务
# 这个函数可以帮助Django正确地处理用户上传的图片、文件等

urlpatterns = [
    # urlpatterns是Django识别的主路由列表
    # 所有的URL匹配规则都写在这个列表中
    # Django会按照列表顺序从上到下匹配用户请求的URL
    
    path('admin/', admin.site.urls),
    # 配置Django后台管理系统的URL
    # 当用户访问 http://127.0.0.1:8000/admin/ 时
    # 自动进入Django内置的后台管理界面
    # 管理员可以在这里增删改查数据库中的数据
    
    path('app/', include('app.urls'))
    # 配置应用模块的URL转发规则
    # 当用户访问 http://127.0.0.1:8000/app/xxx 时
    # 所有以app/开头的请求都会被转发给app应用自己的urls.py处理
    # 这样实现了模块化设计,不同功能的URL可以分开管理
    # app应用中的urls.py负责定义具体的路由,如登录、注册、推荐等
]

urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
# 这一行是开发环境下的媒体文件访问配置
# static()函数返回处理媒体文件的URL路由规则
# 然后将这些规则追加到urlpatterns列表中
#
# settings.MEDIA_URL:媒体文件的URL前缀,通常设为'/media/'
# 例如用户上传的头像,访问路径是 /media/avatar/xxx.png
#
# document_root=settings.MEDIA_ROOT:指定媒体文件的存储目录
# 通常是项目中的一个文件夹,如'media/'
#
# 这行代码的作用是:
# 当用户在浏览器中访问媒体文件时(如头像图片)
# Django能够正确地从文件系统中找到并返回这些文件
#
# 注意:这个配置仅用于开发环境
# 在生产环境中,媒体文件通常由专门的Web服务器(如Nginx)处理

这段代码是Django项目的主路由配置文件,主要做三件事:

第一 ,将admin/路径指向Django内置的后台管理系统,管理员可以通过这个地址管理数据库数据。

第二 ,将所有以app/开头的请求,转发给app应用自己的urls.py文件处理。这样实现了模块化设计,不同应用的URL配置可以分开管理。

第三 ,最后一行代码配置了媒体文件的访问路由 。在开发环境下,当用户访问媒体文件(如用户上传的头像)时,Django能从正确的文件夹中找到并返回这些文件。这行代码将MEDIA_URL(媒体文件URL前缀)映射到MEDIA_ROOT(媒体文件存储目录),实现了文件的访问功能。

相关推荐
放下华子我只抽RuiKe52 小时前
机器学习核心算法全景指南
人工智能·python·深度学习·算法·机器学习·机器人·交互
时寒的笔记2 小时前
逆向入门1整理2025.3.18
javascript·python
dgfhf2 小时前
使用Python处理计算机图形学(PIL/Pillow)
jvm·数据库·python
Jackey_Song_Odd2 小时前
Part 1:Python语言核心 - Control Flow 控制流
开发语言·windows·python
阿_旭2 小时前
【旋转框】基于YOLO26深度学习的无人机视角车辆检测系统【python源码+Pyqt5界面+数据集+训练代码】
python·深度学习·无人机·车辆检测
Pyeako2 小时前
opencv计算机视觉--PaddleOCR的实时多语言文本检测与识别
人工智能·python·opencv·计算机视觉·ocr·paddleocr
薛定猫AI2 小时前
【技术干货】基于 NVIDIA API Catalog 与 Kilo CLI 搭建多模型 AI Coding 工作流(附 Python 实战代码)
大数据·人工智能·python
亚马逊云开发者2 小时前
Bedrock Guardrails 实战:给 AI Agent 装上安全护栏
人工智能·python·安全
cramer_50h2 小时前
Python的web开发框架Django再次更新
前端·python·django