zoukankan      html  css  js  c++  java
  • 开发第一个Template

    TEMPLATE的静态变量,当时我们一句话就带过了。TEMPLATE静态变量下面有好几个键值对,把"BACKEND"后面的值改成我们想要用的模板引擎就可以了。我们项目使用Django自己的引擎就行了。

    render就是我们Django在生成blog这个应用的时候自动添加进来的这么一个模块,这么一个函数叫render

    # -*- coding: utf-8 -*-
    from __future__ import unicode_literals
    
    from django.shortcuts import render
    
    # Create your views here.

    render翻译成中文应该叫渲染,我们应该用这个东西把HTML页面响应给浏览器。render()这个函数有很多个参数。传第三个参数即可,前两个是必须的。request是请求这个对象本身,也就是函数index(request).第二个就是我们的模板文件index.html,第三个参数是我们传递到前端的这个数据,就是我们后台传递到前端的数据。

    看一下模板语言也就是DTL的使用方法。

     

    render的第三个参数呢是用来传递数据到前端的。这个参数支持一个字典类型的数据。字典是键值对,字典的键是参数名,就是我们前端到时候获取到的参数名,值就是要传递的数据。HTML文件来使用这个数据。

    Django模板也同时支持像if,for循环这种比较简单的逻辑操作。

    把blog2添加到INSTALLED_APPS里面。

    # Application definition
    
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
         'blog'
    ]

     

    Django把这两个index.html给搞混乱了。Django在查找Template的时候会按照settings.py中的

    INSTALLED_APPS 

    里添加的顺序来查找Templates。所以不同应用下的Template就是我们的模板HTML文件,如果名字相同,就会造成冲突。改名肯定能解决问题,但是如果有几百个页面怎么办呢,这肯定不是最优解。

    def index(request):
        #return HttpResponse('Hello, world!');
        #return render(request,'index.html',{'hello': 'Hello,Blog'})
        return render(request, 'blog/index.html')
    # Create your views here.
    def index(request):
        return render(request, 'blog2/index.html')

    直接把前面Template的全路径给省略了。

    blogviews.py

    # -*- coding: utf-8 -*-
    from __future__ import unicode_literals
    
    from django.shortcuts import render
    
    # Create your views here.
    
    #from django.shortcuts import render
    from django.http import HttpResponse
    def index(request):
        #return HttpResponse('Hello, world!');
        #return render(request,'index.html',{'hello': 'Hello,Blog'})
        return render(request, 'blog/index.html')
        

    blog2views.py

    # -*- coding: utf-8 -*-
    from __future__ import unicode_literals
    from django.shortcuts import render
    
    # Create your views here.
    def index(request):
        return render(request, 'blog2/index.html')

    blog2index.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <!--
    <h1>Hello,Blog</h1>
    -->
    <h1>Hello,Blog2!</h1>
    </body>
    </html>

    blogindex.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <!--
    <h1>Hello,Blog</h1>
    -->
    <h1>Hello,Blog! </h1>
    </body>
    </html>

    myblogurls.py

    """myblog URL Configuration
    
    The `urlpatterns` list routes URLs to views. For more information please see:
        https://docs.djangoproject.com/en/1.11/topics/http/urls/
    Examples:
    Function views
        1. Add an import:  from my_app import views
        2. Add a URL to urlpatterns:  url(r'^$', views.home, name='home')
    Class-based views
        1. Add an import:  from other_app.views import Home
        2. Add a URL to urlpatterns:  url(r'^$', Home.as_view(), name='home')
    Including another URLconf
        1. Import the include() function: from django.conf.urls import url, include
        2. Add a URL to urlpatterns:  url(r'^blog/', include('blog.urls'))
    """
    from django.conf.urls import url,include
    from django.contrib import admin
    
    
    
    urlpatterns = [
        url(r'^admin/', admin.site.urls),
        url(r'^blog/', include('blog.urls')),    #函数叫bv.index(),括号去掉
        url(r'^blog2/', include('blog2.urls')),
    ]

    blog2urls.py

    from django.conf.urls import url
    
    from . import views
    
    urlpatterns = [
        url(r'^index/$', views.index),
    
    
    ]

    blogurls.py

    from django.conf.urls import url
    
    from . import views
    
    urlpatterns = [
        url(r'^index/$', views.index),
    
    
    ]

    myblogsettings.py

    # Application definition
    
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
         'blog',
         'blog2'
    ]
  • 相关阅读:
    Debug权限提升
    QTime的本质上是一个int,QDateTime本质上是一个qint64
    QString先于QObject存在,因为QObject::objectName()返回的是QString
    C++杂记:运行时类型识别(RTTI)与动态类型转换原理
    gcc/g++编译(生动形象,从最容易入手的hello world解释了库的概念)
    分布式存储
    开源代码——Crouton
    android studio
    WebRTC
    FileProvider是个什么东西?
  • 原文地址:https://www.cnblogs.com/ZHONGZHENHUA/p/9056278.html
Copyright © 2011-2022 走看看