从url中也可以传递参数给后台进行处理。比如http://127.0.0.1:8001/add/?a=4&b=5。 这个链接传入a=4,b=5.后台将进行a+b的处理
新增处理函数
def add(request):
    a=request.GET['a']
    b=request.GET['b']
    return HttpResponse(str(int(a)+int(b)))
在urlpatterns中添加url(r'add/',views.add),得到的链接如下

url也可以写成如下形式:http://127.0.0.1:8001/add/4/5 相应的处理函数改成如下。传递具体的参数给函数
def add(request,a,b):
    return HttpResponse(str(int(a)+int(b)))
 
模板:
在前面讲到函数可以直接到定向到templates中的网页。其实还可以参数给网页,然后在网页中显示出来
如下的home函数,传递一个string参数给index.html
def home(request):
    string=u"网页测试"
    return
render(request,'index.html',{'string':string})
网页中添加{{string}}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<h1 style="background-color:antiquewhite;color:black;"/>hello Django</h1>
{{ string }}
</body>
</html>
还可以传递列表给网页
def home(request):
    list=["HTML","java","python"]
    return render(request,'index.html',{'list':list})
网页中添加如下:
{% for i in list %}
{{ i }}
{% endfor %}


还可以传入字典:
def home(request):
    string=u"网页测试"
   
list=["HTML","java","python"]
    info={'state':u'Django','Content':u'Django学习'}
    return render(request,'index.html',{'info':info})
{% for key,value in info.items %}
{{ key }}:{{ value }}
{% endfor %}

模板中还可以获取当前的网址以及用户。只要在settings.py中添加django.template.conte
xt_processors.request以及django.contrib.messages.context_processors.messages
 
{{ request.user }}
{{ request.path }}

使用bootstrap美化模板:
前面介绍的都是如果通过后端和前端展示的模板联系起来。很多人对于前端的网页如何美化比较头疼,其实对于前端网页来说,有个快速美化和布局的组件就是bootstrap。来看下django中如何引用bootstrap。
1 首先进入bootstrap网站进行组件下载:http://www.bootcss.com/
2 点击下载Bootstrap进行下载
3 下载后得到css,img,js三个文件夹。Bootstrap就是引用这三个文件里面的引用方式来美化和布局。
4 将上述三个文件拷贝到django工程下面的static文件夹,并在django中的进行路径引用设置。在setting,py中进行如下设置:
BASE_DIR是工程的一级目录
 
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
STATIC_URL = '/static/'   #若存放静态文件的static目录在app目录下,则改局生效,无需定义下面的
STATICFILES_DIRS=[os.path.join(BASE_DIR,"static")]   ##若存放静态文件的static目录在project目录下,则用该定义
5 在网页中引用bootstrap的组件:下面部分添加在<head>中
<link href="/static/css/bootstrap.min.css" rel="stylesheet">
<link href="/static/css/bootstrap.css" rel="stylesheet">
<script src="/static/js/bootstrap.min.js"></script>
<script src="/static/js/bootstrap.js"></script>
<script src="/static/js/jquery-3.2.1.min.js"></script>
 
6 在bootstrap网页中去查找对应的模板使用样式。在组件页签中有对应的各种样板方法。还有http://www.runoob.com/bootstrap/bootstrap-tutorial.html这个网站也介绍了很多bootstrap的使用方法,可以参考。

下面设置看下结果:网页代码如下
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>欢迎来到django</title>
    <link href="/static/css/bootstrap.min.css" rel="stylesheet">
    <link href="/static/css/bootstrap.css" rel="stylesheet">
    <script src="/static/js/bootstrap.min.js"></script>
    <script src="/static/js/bootstrap.js"></script>
    <script src="/static/js/jquery-3.2.1.min.js"></script> </head>
<body>
<ul class="nav nav-tabs">
  <li class="active">
    <a href="#">首页</a>
  </li>
  <li><a href="#">下一页.</a></li>
  <li><a href="#">回到首页</a></li>
</ul>
<p>这是django的测试</p>
</body>
</html>
效果如下:





 
												

Django之视图与模板以及在模板中使用bootstrap的更多相关文章

  1. django在视图中使用模板

    在视图中使用模板   在学习了模板系统的基础之后,现在让我们使用相关知识来创建视图. 重新打开我们在前一章在 mysite.views 中创建的 current_datetime 视图. 以下是其内容 ...

  2. 【7】Django网页视图模板处理

    天下难事必作於易.天下大事必作於细.是以圣人终不为大,故能成其大 --老子<道德经> 本节内容 HTML页面的渲染 使用页面模板 异常处理 超链接路径处理 路由命名空间 1. HTML页面 ...

  3. Django之视图层与模板层

    目录 视图层 小白必会三板斧 HttpResponse render redirect JsonResponse 前后端分离 FBV CBV 给CBV加装饰器 模板层 模板语法 模板传值 过滤器 语法 ...

  4. django 之视图层及模板层 04

    目录 视图层 render方法是Template和Contex两个对象的组合使用 JsonResponse对象 CBV及源码分析 CBV 加装饰器的方式 模板层 模板语法传值 模板语法 变量 过滤器( ...

  5. Django的视图层和模板层

    目录 一.视图层 1. 小白必会三板斧 2. JsonResponse 3. FBV与CBV 3.1 FVB 3.2 CBV 4. CBV的源码 5. 给CBV加装饰器 二.模板层 1. 模板语法 2 ...

  6. 第三节:视图(Views)和模板(Templates)

    目录 概览 编写视图 编辑视图实际做一些事情 抛出404异常 使用模板系统 移除在代码中的硬编码网址 Url名称的命名空间 概览 视图是Django应用的网页的“类型”,一般服务于特定的功能并且有特定 ...

  7. Django模板-分离的模板

    上一篇Django模板-在视图中使用模板最后的问题,我们需要把数据和展现分离开. 你可能首先考虑把模板保存在文件系统的某个位置并用 Python 内建的文件操作函数来读取文件内容. 假设文件保存在 E ...

  8. Django 学习第二天——URL路由及模板渲染方式

    URL 的概念及格式: URL的引入:客户端:知道了url 就可以去进行访问: 服务端:设置好了url,别人才能访问到我 URL :网址(全球统一资源定位符):由 协议,域名(ip port) ,路径 ...

  9. Django项目中模板标签及模板的继承与引用【网站中快速布置广告】

    Django项目中模板标签及模板的继承与引用 常见模板标签 {% static %} {% for x in range(x) %}{% endfor %} 循环的序号{% forloop %} 循环 ...

随机推荐

  1. TreeView的性能问题

    最近在帮同事调试一个类似资源管理器的wpf界面,左边TreeView去遍历大目录时UI卡死,刚开始我以为是在UI线程中调用系统API遍历目录的原因,就改为后台遍历,但是没有效果. 根本原因: Tree ...

  2. 最小LINUX系统下U盘的挂载及卸载

    U盘挂载命令U盘插入的时候会显示启动信息,启动信息中sda: sda1指U盘的设备名为sda1dev设备目录下有一个sda1设备文件,此设备文件就是我们插入的U盘,我们将这个设备文件挂载到Linux系 ...

  3. HTML5的local storage

    function clickLogin(){ var userName = $("#user").val().trim(); // console.log(userName); / ...

  4. c++如何编写线程安全的DLL

    DLL有个共同的特点就是都有一个初始化函数,一个资源释放函数,其他几个函数都是核心功能函数.而且这些DLL有时会被多个进程同时调用,这就牵扯到多进程的多线程调用DLL的问题.有点绕口,以下我根据我实践 ...

  5. 窗体的keypreview属性的作用是什么?(设置快捷键和钩子)

    如果把窗体的KeyPreview属性设为True,那么窗体将比其内的控件优先获得键盘事件的激活权.比如窗体Form1和其内的文本框Text1都准备响应KeyPress事件,那么以下代码将首先激活窗体的 ...

  6. C语言学习笔记--内存分区

    1. 程序中的栈 1.1 栈的简介 (1)栈中现代计算机程序里最为重要的概念之一 (2)栈在程序中用于维护函数调用上下文 (3)函数中的参数和局部变量存储在栈上 (4)栈保存了一个函数调用所需的维护信 ...

  7. xcode减小静态库的大小(转)

    减小静态库的大小 编译生成的.a文件太大,但又没有冗余的文件可以删除已减少体积,找了很久才找到解决办法,如下: Build Settings-->Generate Debug Symbols 将 ...

  8. [hdu2255]奔小康赚大钱(二分图最优匹配、KM算法)

    题目大意:求二分图的最优匹配(首先数目最大, 其次权值最大). 解题关键:KM算法 复杂度:$O(n^3)$ #include<cstdio> #include<cstring> ...

  9. C++实现矩阵的相加/相称/转置/求鞍点

    1.矩阵相加 两个同型矩阵做加法,就是对应的元素相加. #include<iostream> using namespace std; int main(){ int a[3][3]={{ ...

  10. 202. Happy Number 平方循环数

    [抄题]: Write an algorithm to determine if a number is "happy". A happy number is a number d ...