上一篇讲到创建了一个空的项目mysite
下面讲如何增加一个简单页面,显示系统当前时间
在mysite目录下修改urls.py
先引用blog应用,再定义新的url
效果如下:
from django.contrib import admin
from django.urls import path
from blog import views
urlpatterns = [
path('admin/', admin.site.urls),
path('cur_time/', views.cur_time),
]
注意,用Pycharm启动时,必须打开的是当前项目,不能打开多个项目
否则urls.py的
from blog import views 这一段代码是红色的,会误认为报错
在blog目录下修改views.py
需要加载HttpResponse模块
from django.shortcuts import render,HttpResponse
import datetime
# Create your views here.
def cur_time(request):
return HttpResponse("<h1>ok</h1>")
request这个参数必须要有,因为它包含了一些http请求信息
HttpResponse可以直接返回一个html标签
启动应用,访问页面
http://127.0.0.1:8000/cur_time/
直接用HttpResponse返回一个html标签不太好,如果代码比较多,就不合适了。
下面介绍如何加载一个html文件
修改views.py文件
from django.shortcuts import render,HttpResponse
import datetime
# Create your views here.
def cur_time(request):
# 获得当前时间
now = datetime.datetime.now()
# 转换为指定的格式:
otherStyleTime = now.strftime("%Y-%m-%d %H:%M:%S")
# render用来加载html文件,{}里面是要传给模板的的变量
return render(request, "cur_time.html", {"abc": otherStyleTime})
修改settings.py文件
定义html的文件位置
TEMPLATES变量里面的 'DIRS': [] 需要修改,效果如下:
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',
],
},
},
]
表示当前项目下的templates目录
在站点根目录创建templates文件夹(静态页面)
在tempates目录下创建cur_time.html文件
内容如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>当前时间: {{ abc }}</h1>
</body>
</html>
模板渲染变量时,需要用{{ 变量名}}才能显示,abc是views传给html的变量
完整的目录结构如下(已删除__pycache__):
mysite/
├── blog
│ ├── admin.py
│ ├── apps.py
│ ├── __init__.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── tests.py
│ └── views.py
├── db.sqlite3
├── manage.py
├── mysite
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
└── templates
└── cur_time.html
启动应用,访问页面
Dijango有一个优点,python编辑好之后,不用重启,就可以自动加载了
保存之后,就自动重启了