Django 视图与网址进阶

Django 视图与网址进阶

网页做加减法

1,采用 /add/?a=4&b=5

# 新建项目和应用
django-admin startproject add
python manage.py startapp calc

目录结构如下

add/
├── add
│   ├── __init__.py
│   ├── __init__.pyc
│   ├── settings.py
│   ├── settings.pyc
│   ├── urls.py
│   └── wsgi.py
├── calc
│   ├── admin.py
│   ├── apps.py
│   ├── __init__.py
│   ├── migrations
│   │   └── __init__.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
└── manage.py

修改 calc/views 文件

from django.shortcuts import render
from django.http import HttpResponse
 
def add(request):
    a = request.GET['a']
    b = request.GET['b']
    c = int(a)+int(b)
    return HttpResponse(str(c))

接着修改urls.py 文件,添加一个网址来对应我们刚才新建的视图函数

from django.conf.urls import url
from django.contrib import admin
# 先引入
from calc import views as calc_views
 
urlpatterns = [
    url(r'^add/$', calc_views.add, name='add'),  # 注意修改了这一行
    url(r'^admin/', admin.site.urls),
]

2,采用 /add/3/4

django 支持更优雅的网址

修改 calc/views 文件,重新定义一个 add2 函数

def add2(request, a, b):
    c = int(a) + int(b)
    return HttpResponse(str(c))

接着添加一个新的 url

url(r'^add/(\d+)/(\d+)/$',calc_views.add2,name='add2'),

网址中多了 (\d+),正则中 \d 代表一个数字,+ 代表一个或多个前面的字符,写在一起 \d+ 就是代表一个或多个数字,用括号的意思是保存为一个子组,每一个子组将作为一个参数,被 views.py 中的对应视图函数所接受。

posted @ 2017-04-21 14:34  Andy_Linux  阅读(146)  评论(0)    收藏  举报