zoukankan      html  css  js  c++  java
  • django表单及母板

    在之前的埔文中说到了对Model的操作以及对url的路由映射等内容,对应django的mtv框架则是完成了学习,Model与viewer的操作,那么本节主要来唠叨一下template,当Model,view ,template三者打通以后,我们就基本可以完成一个小型系统的基本功能

    对于template的的使用同样需要在django的setting.py文件中指定路径,如下所示:

    TEMPLATES = [
    {
    'BACKEND': 'django.template.backends.django.DjangoTemplates',
    'DIRS': [os.path.join(BASE_DIR,'template')],
    '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',
    ],
    },
    },
    ]
    同时需要指定以下内容:
    STATIC_URL = '/static/'    指定静态资源如 css js等

    对于django的路由系统来说,请求最先到达的是路由映射的方法中,将方法将判断此请求是get还是post,如果是get请求一般会将内容渲染到一个无需验证的template文件中

    范例
    view层代码:
    from django.shortcuts import render,render_to_response
    from django.http import HttpResponse
    from models import Asset
    def userlogin(request):
    if request.method=='GET':
    return render_to_response('web/form.html')
    if request.method=='POST':
    name=request.POST.get('username',None)
    if Asset.objects.filter(username=username).count()==1:
    datalist=Asset.objects.all()
    return render_to_response('web/assetlist.html',{'data':datalist,'user':'jay'})
    else:
    return HttpResponse('登录失败')


    Model层代码()
    
    
    class userinfo(models.Model):
    username=models.CharField(max_length=100)
    create_date=models.DateTimeField(auto_now_add=True)
    update_date=models.DateTimeField(auto_now=True)

    template层代码:


    <!DOCTYPE html>

    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Title</title>
    </head>
    <body>
    <table border="1" cellpadding="20" cellspacing="3" width="300">
    {{user}}<br>
    {%if user%}

    得到了用户
    <br>
    {%else%}
    没有得到用户
    {%endif%}
    {%ifequal user 'jay'%}
    系统返回的用户是jay
    {%endifequal%}
    {%for item in data %}
    <tr>
    <td>{{item.id}}</td>
    <td>{{item.hostname}}</td>
    <td>{{item.createdate|date:'y-m-d H:i:s'}}</td>

    </tr>
    {%endfor%}
    </table>
    </body>
    </html>
    在url中做相关映射:
    url(r'^login/', userlogin),
    打开访问http://localhost:8000/web/login

    至此一个简单的model view template三者的连动就已经完成

    django同样提供了基于母版页的设计,应用也非常简单

    如下所示
    母板页面的代码
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Title</title>
    </head>
    <body>
    <div>公用的头部</div>
    {%block content%}
    {%endblock%}
    <div>公用的底部</div>
    </body>
    </html>
    内容页面的代码

    {%extends "master/layout.html"%}
    {%block content%}
    啦啦啦,我是母板的占位重写的内容
    {%endblock%}
    视图函数代码:
    def masterpage(request):
    return render_to_response('web/index.html')


    url映射:
    url(r'^page/', masterpage),
    此时在访问:http://localhost:8000/web/page时就会访问到应用了母板的页面


     
  • 相关阅读:
    Kafka 集群搭建 (自用)
    Kafka 简单实验二(Python实现简单生产者消费者)
    Kafka 简单实验一(安装Kafka)
    Spark下载与入门(Spark自学二)
    Spark导论(Spark自学一)
    MongoDB分片集群新增分片(自用)
    Python 获取图片文件大小并转换为base64编码
    Python 获取图片格式及像素宽高信息
    MongoDB集群设置集合分片生效及查看集合分片情况
    商城购物车的实现设计思想
  • 原文地址:https://www.cnblogs.com/lijintian/p/5855922.html
Copyright © 2011-2022 走看看