Django学习笔记1 url、视图和模板

时间:2022-10-14 19:18:09

Django创建网页的过程: 定义URL、编写视图、编写模板。

1. url的映射

url被映射到一个视图函数,视图函数调用一个模板来生成网页。

Django学习笔记1 url、视图和模板
项目主文件夹learning_log中的url.py文件:

# urls.py
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('learning_logs.urls', namespace='learning_logs')),
]

我们在其中添加了

path('', include('learning_logs.urls', namespace='learning_logs')),

可以把learning_logs中的url与项目中其他url分离。
现在在learning_logs中创建另一个urls.py

"""define url mode of learning_logs"""

from django.urls import path, re_path
# . indicates Django imports views from the current directory
from . import views

urlpatterns = [
    # home
    path('', views.index, name='index'),
]
app_name = 'learning_logs'

其中urlpatterns是一个列表,包含的是learning_logs中可以请求的网页。
path函数中,
第一个参数匹配url,这里为空,即匹配”http://localhost:port/”,
第二个参数表示要调用的视图函数,即views.py中的index函数
第三个参数指定这个url的名称,在其他地方引用这个地址时,就可以指定名称来代替完整的url。

2. 视图
在learning_logs目录下,之前已经通过python mange.py startapp生成了views.py
现在,添加index函数

from django.shortcuts import render

# Create your views here.

def index(request):
    """home page of learning log"""
    return render(request, 'learning_logs/index.html')

render函数有两个参数,
第一个是原始请求对象,由之前的path函数传递进来。
第二个是用于创建网页的模板。

3. 模板
先明确,learning_log是主项目,它存在于learning_log文件夹中,learning_logs是一个应用,它也存在于learning_log文件夹中。
在learning_logs文件夹下创建一个目录templates,
在templates目录下创建一个learning_logs目录,
进入 learning_log/learning_logs/templates/learning_logs,
创建index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Home</title>
</head>
<body>
<p>Learning Log</p>
<p>Learning Log helps you keep track of your learning, 
for any topic you're learning about.</p>
</body>
</html>

现在访问localhost:port,就可以看到刚刚创建的主页。