django显示当前时间

发布时间:2018-06-09 21:40:13编辑:admin阅读(5510)

    上一篇讲到创建了一个空的项目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/

    blob.png

    直接用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


    启动应用,访问页面

    blob.png

    Dijango有一个优点,python编辑好之后,不用重启,就可以自动加载了

    保存之后,就自动重启了


关键字

上一篇: django创建项目

下一篇: django表单提交