网络工程毕设做网站,页面设计怎么写,网页制作作业100例,昆明网站优化Django基础篇 一、Django学习之路由二、Django学习之视图三、Django学习之静态资源 一、Django学习之路由
在 Django 中#xff0c;路由#xff08;URL 映射#xff09;是将请求与视图函数关联起来的关键部分。路由定义了如何将特定的 URL 请求映射到 Django 应用程序中的视… Django基础篇 一、Django学习之路由二、Django学习之视图三、Django学习之静态资源 一、Django学习之路由
在 Django 中路由URL 映射是将请求与视图函数关联起来的关键部分。路由定义了如何将特定的 URL 请求映射到 Django 应用程序中的视图函数从而确定哪个视图函数应该处理请求。 URL配置文件Django 中的路由由一个或多个 URL 配置文件定义。通常每个应用程序都有一个名为 urls.py 的 URL 配置文件用于定义该应用程序的路由规则。此外Django 项目也有一个根级别的 URL 配置文件通常命名为 urls.py。 导入必要的模块:在 URL 配置文件的顶部需要导入必要的模块包括 django.urls 和视图函数以便进行路由配置。 from django.urls import path
from . import views定义 URL 路由规则在 URL 配置文件中你可以使用 path() 函数或 re_path() 函数来定义 URL 路由规则。这些函数将 URL 模式与相应的视图函数关联起来。以下是一个简单的示例 urlpatterns [path(home/, views.home_view, namehome),path(about/, views.about_view, nameabout),
] 在这个示例中我们定义了两个 URL 路由规则。当用户访问 /home/ 时将调用 views.home_view 视图函数当用户访问 /about/ 时将调用 views.about_view 视图函数。 URL 参数你可以在路由中包含参数以便从 URL 中捕获数据。例如你可以定义一个接受文章 ID 的路由规则 path(article/int:article_id/, views.article_detail, namearticle_detail) 命名路由给路由规则命名是一种良好的实践它允许你在模板和视图中使用可读性更好的名称来引用路由。上面示例中的 name 参数用于给每个路由规则命名例如 name‘home’ 和 name‘about’。 URL 反向解析Django 提供了 URL 反向解析的功能允许你根据命名的路由生成相应的 URL。这对于在模板中生成链接或在视图中重定向到其他页面非常有用。你可以使用 {% url ‘name’ %} 模板标签或 reverse(‘name’) 视图函数来进行 URL 反向解析。 应用命名空间如果你的 Django 项目包含多个应用程序可以使用应用命名空间来避免路由冲突。在应用的 URL 配置文件中使用 app_name 来定义应用的命名空间然后在根级别的 URL 配置文件中使用该命名空间来引用应用的路由规则。 # 应用的 URL 配置文件
app_name myapp# 根级别的 URL 配置文件
path(myapp/, include(myapp.urls, namespacemyapp))
二、Django学习之视图
在 Django 中视图Views是处理 Web 请求和返回 Web 响应的核心部分。视图函数负责接收 HTTP 请求执行必要的逻辑然后返回 HTTP 响应。 创建视图函数在 Django 中你需要编写 Python 函数来定义视图。这些函数通常存储在应用程序的 views.py文件中。一个简单的 Django 视图函数如下 from django.http import HttpResponsedef hello(request):return HttpResponse(Hello, Django!) 这个视图函数接收一个 request 参数该参数包含了关于当前请求的信息然后返回一个 HttpResponse 对象其中包含了要返回给客户端的内容。 HTTP 请求方法视图函数可以根据 HTTP 请求方法来执行不同的逻辑。例如你可以使用 request.method 来检查请求的方法如 GET、POST、PUT、DELETE 等然后根据不同的方法执行相应的操作。 URL 路由和视图映射在 Django 中你需要将 URL 请求映射到相应的视图函数。这通常通过在 URL 配置文件中定义路由规则来实现。每个路由规则将一个 URL 模式与一个视图函数关联起来。 from django.urls import path
from . import viewsurlpatterns [path(hello/, views.hello, namehello),
] 在上述示例中path(‘hello/’, views.hello, name‘hello’) 将 /hello/ URL 映射到 views.hello 视图函数。 请求参数和上下文视图函数可以接收来自 HTTP 请求的参数例如 URL 参数、表单数据或 JSON 数据。这些参数通常通过 request 对象来获取。视图函数还可以定义上下文数据以便将数据传递给模板渲染。 def test(request,pid):# 1、当前urlprint(request.path_info)# 2、URL传递参数print(request.GET)# 3、请求方式print(request.method)# 4、如果post请求传递请求体原始数据print(request.body)# 5、请求头print(request.headers)# 6、cooker值print(request.COOKIES)# 7、其他值print(request.resolver_match)return HttpResponse(ok) 返回响应视图函数的主要任务是返回一个 HTTP 响应。你可以使用 HttpResponse 对象来返回纯文本、HTML、JSON 等不同类型的响应。Django 还提供了许多其他类型的响应对象如 JsonResponse、Redirect 等以便根据需要返回不同类型的响应。 模板渲染通常视图函数会渲染 HTML 模板并将数据传递给模板以进行渲染。Django 使用模板引擎来将数据嵌入到 HTML 模板中生成最终的响应。你可以使用 render 函数来渲染模板。 from django.shortcuts import renderdef my_view(request):data {name: John}return render(request, my_template.html, contextdata) 装饰器Django 允许你使用装饰器来修改视图函数的行为例如要求用户登录、缓存响应等。常用的装饰器包括 login_required 和 cache_page。 类视图除了函数视图Django 还支持基于类的视图Class-Based ViewsCBVs它们提供了更多的可复用性和结构化的方式来编写视图。常见的类视图包括 DetailView、ListView、CreateView 等。 def user(request):if request.method GET:passelif request.method POST:passfrom django.views import View
class UserView(View):def get(self):passdef post(self):pass三、Django学习之静态资源
在 Django 中静态资源包括 CSS、JavaScript、图像和其他静态文件它们用于构建和美化你的网站。配置和提供静态资源对于一个 Web 应用程序至关重要。 项目目录结构首先确保你的 Django 项目具有以下典型的目录结构 myproject/
├── myproject/
│ ├── settings.py
│ ├── urls.py
├── myapp/
│ ├── static/
│ │ ├── myapp/
│ │ │ ├── css/
│ │ │ ├── js/
│ │ │ ├── images/
├── templates/
│ ├── ...
├── manage.py 在上述结构中myapp 是你的应用程序static 目录用于存储静态资源templates 目录用于存储 HTML 模板。 配置静态文件路径在 Django 项目的 settings.py 文件中确保你已经正确配置了静态文件路径。通常你需要设置以下两个设置 STATIC_URL /static/ # 静态文件的URL前缀
STATICFILES_DIRS [os.path.join(BASE_DIR, myapp/static)] # 静态文件的存储位置 STATIC_URL 定义了静态文件在 URL 中的前缀。默认情况下它设置为 /static/这意味着你的静态文件将通过 http://yourdomain.com/static/ 访问。 STATICFILES_DIRS 指定了静态文件的存储位置这里设置为应用程序的 static 目录。Django 将在这些目录中查找静态文件。 使用静态文件在 HTML 模板中你可以使用 {% load static %} 模板标签来加载静态文件。然后可以使用 {% static ‘path/to/your/static/file’ %} 标签来引用静态文件。例如 !DOCTYPE html
html
headlink relstylesheet typetext/css href{% static myapp/css/style.css %}
/head
bodyimg src{% static myapp/images/logo.png %} altLogo
/body
/html 这里{% static ‘path/to/your/static/file’ %} 将根据 STATIC_URL 配置生成正确的 URL。 收集静态文件在开发过程中Django 的开发服务器可以自动提供静态文件。但在生产环境中通常需要收集所有静态文件到一个集中的位置并由 Web 服务器提供。你可以使用以下命令来收集静态文件 python manage.py collectstatic这将会将所有静态文件从各个应用程序的 static 目录收集到一个目录中通常是你的项目目录下的 static 目录。 使用 CDN内容分发网络在生产环境中可以考虑使用 CDN 来提供静态资源以加速资源加载并减轻服务器负担。在模板中使用绝对 URL 或 CDN URL 来引用静态资源。