3.通过INCLUDE创建Django url
该技术涉及在每个应用程序中创建 url 模式。当应用程序需要插入不同的应用程序时,这将带来更大的灵活性。将这些 URL 包含在主项目 urls.py 文件中将有助于轻松访问与该 Django 应用程序关联的网页。以下是与制作面向包含的 Django urls.py 相关的步骤。
Django 应用程序 urls.py: 首先需要在应用程序中创建一个 urls.py 文件。因此,这意味着预期作为 Django 项目的一部分开发的每个 Django 应用程序都被视为在其中包含一个单独的 urls.py 文件。这个单独的 urls.py 文件将为应用程序带来灵活性,以便它们可以轻松地从主项目中插入和拔出。
像通常的 urls.py 一样,这个文件包含从 django.conf.URLs 库中导入的 url 类,最重要的是,这个应用程序的视图文件预计将从这里提到的 Django 应用程序中导入。在从 Django 应用程序导入视图时需要指定已导入的视图方法。另外,就像在上面的 URL 声明中提到的一样,这里再次与 url 映射关联的名称 s 和映射的路径也被放置。因此,此部分充当单个 Django 应用程序中 urls.py 文件的公式。
from django.contrib import admin
from django.conf.urls import url
from Django_app1 import views
urlpatterns = [
url(r'formpage/',views.formView,name='form'),
]
Main project urls.py: 此 urls.py 文件将充当链接整个应用程序库的首映 URL。这里可以包含来自 Django 应用程序的所有 URL,这意味着这些应用程序中寻址的每个页面都可以在这里复杂地访问。要注意的第一个主要元素是 include 方法是从 django.conf.urls 库中导入的。这是第一个要注意的关键问题。接下来,确保还导入了 admin 类。这个管理类在设置自动发现方法时很有用。最后,需要确保来自 Django 应用程序的 urls.py 文件作为一项包含在 urlpatterns 元组中。使这个包含将自动从相应的应用程序导入所有 url。
rom django.contrib import admin
from django.conf.urls import url,include
from Django_app1 import views
admin.autodiscover()
urlpatterns = [
url(r'^$',views.template_view,name='template'),
url(r'^myapp/', include('Django_app1.urls')),
url(r'admin/', admin.site.urls),
]
输出:
4. 在 URLS 中设置转换器
转换器负责将 URL 中的动态值转换为所需的值格式。
例子
下面的示例展示了如何将 url 值转换为字符串格式并传递到其相应的视图中。
urls.py:
from django.contrib import admin
from django.conf.urls import url,include
from django.urls import path , re_path,register_converter
from django.urls.converters import StringConverter
from Django_app1 import views
admin.autodiscover()
register_converter(StringConverter, 'username')
urlpatterns = [
path('index/<username:uname>/',views.template_view,name='template'),
# url(r'formpage/',views.formView,name='form'),
url(r'^myapp/', include('Django_app1.urls')),
url(r'admin/', admin.site.urls),
]
Views.py:
from django.shortcuts import render
from django.http import HttpResponse
from Django_app1.forms import Valueform
from django.core.exceptions import ViewDoesNotExist
from django.contrib.auth.models import User
def template_view(request_iter,uname):
template_Var = {
"Entity_name" : "Educba",
"Entity_type" : "tutorial",
"Entity_students_count" : 345,
"Error_Message" : "No Valid Entity found"
}
print("Username:",uname)
return render(request_iter,'design.html',context=template_Var)
输出:
5. 通过 URL() 创建 Django URL
1.创建模板文件夹: 首先保存网页的html设计,需要创建的模板。这些模板存储在模板文件夹中,因此对于一个 Django 项目的所有代码都相关联。必须在主项目文件夹下创建模板文件夹。
2.在settings.py 文件中标记Template 文件夹: settings.py 文件需要有templates 文件夹的标记,以便整个Django 项目可以访问所有模板。这带来了访问作为模板文件夹一部分放置的所有 html 文件的能力。
3.在 Templates 文件夹中放置一个 HTML 文件: 网页的 HTML 内容被起草。
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>Django App1</title>
</head>
<body>
<h1> Hello world from HTML page <h1>
</body>
</html>
4.使用 render() 方法在 views.py 中渲染 html 文件: 为了将新创建的 HTML 内容传递到网页,或者换句话说,将内容连接到网页,使用了 render() 方法。render 方法将模板与上下文字典结合以返回一个 HttpResponse 对象。
from django.shortcuts import render
from django.http import HttpRespons
def index(request_iter):
return render(request_iter,'design.html')
从 django.conf.urls 导入 url 导入库。
在 urlpatterns 列表中声明一个 url 条目。
url(url_path,view_to_be_tagged,name_for_this_view)
from django.contrib import admin
from django.conf.urls import url
from Django_app1 import views
urlpatterns = [
url(r'^$',views.index,name='index'),
url(r'admin/', admin.site.urls), ]
使用 python manage.py runserver 命令重新加载服务器并验证网页。
控制台将粘贴下面列出的服务器消息,因此可以从中识别要启动的服务器的时间,还会显示 http 链接和使用的 Django 服务器的版本。
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
June 23, 2020 - 13:33:00
Django version 3.0.7, using settings 'educba.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
使用 python manage.py runserver 命令重新加载服务器并验证网页。
输出:
6. Django URL 错误代码
错误代码
意义
400
错误的请求
403
没有权限
404
找不到网页
500
服务器错误
总结
这是 Django URL 的指南。在这里,我们还讨论了介绍以及如何创建 Django URL 以及不同的示例及其代码实现。