专栏首页python3django显示当前时间

django显示当前时间

上一篇讲到创建了一个空的项目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编辑好之后,不用重启,就可以自动加载了

保存之后,就自动重启了

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Django 入门学习(3)

    在例4的基础上,我希望直接保存数据到数据库中。 Django自带了一个sqlite的数据库,已经配置好了 可以直接使用。使用方式和sqlalchemy类似,相当...

    py3study
  • python django 安装及测试程

    py3study
  • django创建项目

    Django的MTV模式本质上与MVC模式没有什么差别,也是各组件之间为了保持松耦合关系,只是定义上有些许不同,Django的MTV分别代表:

    py3study
  • Django怎么学?和我一起学【基础篇一】

    快高考了,先给一些即将步入大学的同学们鼓励一下,加油加油!【欢迎大家关注我的公众号‘软件测试小助手’】

    小雯子打豆豆
  • 四、其它(一)ModelAdmin对象InlineModelAdmin对象重写admin模板Paginator对象Page对象示例

    酱紫安
  • Django——基础创建

    manage.py是项目管理文件,通过它管理项目。 init.py是一个空文件,作用是这个目录demo1可以被当作包使用。 settings.py是项目的整...

    羊羽shine
  • python -m 和 python 直接运行的区别

    于小勇
  • django创建项目

    Django的MTV模式本质上与MVC模式没有什么差别,也是各组件之间为了保持松耦合关系,只是定义上有些许不同,Django的MTV分别代表:

    py3study
  • (原创)python爬取慕课网视频

    七夜安全博客
  • 深究AngularJS(3)——$res

    ngResource模块是一个可选的angularjs模块,如果需要使用,我们要单独引用js

    py3study

扫码关注云+社区

领取腾讯云代金券