Django入门三之urls.py重构及参数传递

1. 内部重构

2. 外部重构

website/blog/urls.py

website/website/urls.py

3. 两种参数处理方式

 -1. blog/index/?id=1234&name=bikmin

  #urls.py

url(r‘^blog/index/$‘,‘get_id_name‘)

   #views.py

from django.http import HttpResponse
from django.template import loader,Context

def get_id_name(request):
    html = loader.get_template("index.html")
    id = request.GET.get("id")
    name = request.GET.get("name")
    context = Context({"id":id,"name":name})
    return HttpResponse(html.render(context))

  #index.html

<body>
    <li>id:{{ id }}</li>
    <li>name:{{ name }}</li>
</body>

  效果如下

 -2. blog/index/1234/bikmin

  #urls.py

url(r‘^blog/index/(\d{4})/(\w+)/$‘,‘blog.views.get_id_name‘)

  #views.py

from django.http import HttpResponse
from django.template import loader,Context

def get_id_name(request,p1,p2):
    html = loader.get_template("index.html")
    context = Context({"id":p1,"name":p2})
    return HttpResponse(html.render(context))

  #index.html

<body>
    <li>id:{{ id }}</li>
    <li>name:{{ name }}</li>
</body>

  效果如下:

  -3. blog/index/1234/bikmin  (和-2不一样的在于views.py,接收的参数名是限定的)

  #urls.py

#限定id,name参数名
url(r‘blog/index/(?P<id>\d{4})/(?P<name>\w+)/$‘,‘get_id_name‘)

  #views.py

from django.http import HttpResponse
from django.template import loader,Context

def get_id_name(request,id,name):
    html = loader.get_template("index.html")
    context = Context({"id":id,"name":name})
    return HttpResponse(html.render(context))

  #index.html

<body>
    <li>id:{{ id }}</li>
    <li>name:{{ name }}</li>
</body>

  效果如下

时间: 2024-10-13 10:29:21

Django入门三之urls.py重构及参数传递的相关文章

django入门三(视图)

定义视图 本质就是一个函数 视图的参数 一个HttpRequest实例 通过正则表达式组获取的位置参数 通过正则表达式组获得的关键字参数 在应用目录下默认有views.py文件,一般视图都定义在这个文件中 如果处理功能过多,可以将函数定义到不同的py文件中 1 #新建views1.py 2 #coding:utf-8 3 from django.http import HttpResponse 4 def index(request): 5 return HttpResponse("hello

Django入门(三) &nbsp; 前端模版语言

经过前面两节的讲解,我们现在已经可以通过引入外部的样式对我们的html页面进行装饰了.但是不论我们再如何装饰,发布出来的html也只是个静态的页面.比如我们现在需要每次页面刷新的时间都在页面上展示出来.静态页面的内容都是写死的,那现在我们尝试用动态的的语言来实现我们的功能. django中实现动态页面需要从两个地方进行处理: 1.应用文件夹app01中的views.py要修改index()函数的内容定义要传给html页面的变量内容 2.在html页面代码中加入jinja格式的动态脚本语言,将in

python学习笔记--Django入门四 管理站点

上一节  Django入门三 Django 与数据库的交互:数据建模 "管理员界面"是基础功能中的重要部分.. 激活管理员界面 管理界面是 Django 中最酷的一部分.但是不是所有人都需要它,所以它是可选的.这也就意味着你需要跟着三个步骤来激活它. 在你的 models 中加入admin metadata. 不是所有的models都能够(或应该)被管理员编辑,你需要给models标记一个管理员接口(interface),通过给models添加一个内部类'admin'完成接口标记.所以

Django入门(一)

Django是一个python流行的web框架,什么框架呢?在我理解web框架就是用来处理用户访问url的一套模板.但是这个框架不是运维上所谓的web发布容器.像我们熟知的nginx.apache等是web发布容器.说白了就是放着web页面的代码.让用户的浏览器可以直接访问进来.例如用户访问的www.abc.com的时候,会先把请求发送给web容器.但是web容器并不知道接收到www.abc.com这个url之后该怎么办.所以它需要把这个url交给web框架,由web框架来决定接收到url之后返

Django入门笔记

Django入门笔记 **文档包含Django安装包.学习的笔记.代码等 安装 Django参考附件,只需要把附件拷贝到你需要的目录就行.Django是1.8.16版本 Python:在附件中,其中有Django需要的依赖包 编辑器:Aptana,一个强大的IDE工具,可以在上边新建模板,支持各种语言 Django项目创建 **可以用附件中的工程目录或者自己新建 新建工程-创建Django 新建工程-配置Django工程 工程创建完成后,会在工程目录中自动创建以下几个py文件 settings.

Python自动化运维Django入门

随着IT运维技术日益更新,近几年运维自动化越来越火,而且学习python的人非常的火爆,尤其是python自动化运维开发,得到了很多前辈的推崇,尤其是老男孩培训中心.老男孩老师.Alex老师等,在这里非常感谢你们. 这里我也记录一下以前学习Django的一点点心得和方法,方便以后自己查阅,如果能帮助初学者是最好的了!好的,其他不多说了,博文滴走起. 一.系统实战环境 系统版本:CnetOS6.5 x86_64 Django版本:Django-1.5.8 MySQL版本:MySQL-5.1.73

第三百零四节,Django框架,urls.py模块——

Django框架,模块 一.urls.py模块 这个模块是配置路由映射的模块,当用户访问一个url地址时,通过这个路由映射模块,映射给对应的逻辑处理函数 urlpatterns等于的一个列表,列表里的一个元素就是一条路由映射 urlpatterns路由映射配置方式 参数说明: 一个正则表达式字符串一个可调用对象,通常为一个视图函数或一个指定视图函数路径的字符串可选的要传递给视图函数的默认参数(字典形式)一个可选的name参数 urlpatterns = [ url(正则表达式, 映射函数,参数[

python+django 更改了urls.py 之后runserver报错的解决办法

新手学python+django时,更改了urls.py 为: from django.conf.urls import patterns, include, urlfrom django.contrib import adminadmin.autodiscover() urlpatterns = patterns('',    # Examples:    # url(r'^$', 'mysite.views.home', name='home'),    # url(r'^blog/', i

Django入门笔记【三】

入门笔记翻译整理自:https://docs.djangoproject.com/en/1.8/ *该笔记将使用一个关于投票网络应用(poll application)的例子来阐述Django的用法. Public interface - views. 1. 定义 视图(View)是Django应用中用于实现某一特定功能的Web页面.比如,一个博客可以有博客展示页面,博客创建页面,评论页面. 2. 视图示例 写入代码 1 #polls/views.py 2 3 from django.http