Skip to main content

Django 处理 HTTP 参数

获取GET参数示例

# urls.py

# path 不处理正则
from django.urls import path
# re_path 以前叫 url,处理正则
# https://stackoverflow.com/questions/47947673/is-it-better-to-use-path-or-url-in-urls-py-for-django-2-0/47947947
from django.urls import re_path as url
from django.http import HttpResponse

# 处理 Query 参数
def doQuery (request):
	# 获得 query 的 id
    id=request.GET.get('id', default='defaultID')

urlpatterns = [
	url(r'query/$', doQuery)
]

示例:/query?id=1

获取Param参数示例

# urls.py
from django.urls import re_path as url
from django.http import HttpResponse

# 处理Param参数
def doParam (request, id, name):
    print(id, name)
    return HttpResponse()

urlpatterns = [
    url(r'param/(\d+)/(\w+)$', doParam),
]

示例:/param/32/dormao

获得JSON数据

# urls.py
import json
from django.http import HttpResponse

def doJSON(request):
    try:
        json = json.loads(request.body)
        print(json)
    except Exception as e:
        print(e)
    return HttpResponse()

urlpatterns = [
	url(r'post/$', doJSON),
]

示例:带上 { "id": 1 } 访问 /post/