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时就会访问到应用了母板的页面


     
  • 相关阅读:
    修复PLSQL Developer 与 Office 2010的集成导出Excel 功能
    Using svn in CLI with Batch
    mysql 备份数据库 mysqldump
    Red Hat 5.8 CentOS 6.5 共用 输入法
    HP 4411s Install Red Hat Enterprise Linux 5.8) Wireless Driver
    变更RHEL(Red Hat Enterprise Linux 5.8)更新源使之自动更新
    RedHat 5.6 问题简记
    Weblogic 9.2和10.3 改密码 一站完成
    ExtJS Tab里放Grid高度自适应问题,官方Perfect方案。
    文件和目录之utime函数
  • 原文地址:https://www.cnblogs.com/lijintian/p/5855922.html
Copyright © 2011-2022 走看看