django路由寻址与获取数据的几种方式(其一)
一路由寻址过程:
1,首先加载setting文件,seting文件找到项目全局路由!
ROOT_URLCONF = 'demo.urls'
2,在全局路由之中指定app项目路由!在全局路由之中指向每个模块的路由地址!
urlpatterns = [ #admin 是自定义的模块! url(r'^admin/', admin.site.urls), # 第一个参数是指的是匹配的app模块,第二个参数是指向模块之中的url寻址文件! url(r'^user/', include('users.urls', namespace='user')), ]
3,在app模块之中(新建的urls.py 文件!)指定具体的视图函数
urlpatterns = [ # 第一个参数是指的是匹配的路径,第二个参数是指路由函数 url(r'index/', views.index), ]
二,django获取数据的几种形式
1,获取url参数 http://127.0.0.1:8000/user/weather/hello/123
# url定义:可以不采用命名的形式! url( r'weather/(?P<city>\w+)/(?P<year>\d+)$', views.weather ), # 传参只能够是 util memory temperature 这三个值 url( r'^(?P<pk>util|memory|temperature)/$', views.Home.as_view(), name='home' )
定义视图:
def weather(request, year, city): return HttpResponse(city + year)
2,通过key - velues 的形式来获取数据
列表的形式获取数据a !http://127.0.0.1:8000/user/http_responses/?a=2&b=3&a=4
def http_responses(request): # 获取到的值并不是数字,而是字符串! # 并不是GET请求获取方式!是指的是k:v 的获取形式! a_values = request.GET.getlist('a') b_values = request.GET.get('b') print(a_values) # 打印结果为 ['2', '4'] return HttpResponse(b_values)
3,如果是form 表单的形式就用request的形式
def http_responses(request): a_values = request.POST.getlist('a') b_values = request.POST.get('b') print(a_values) return HttpResponse(b_values)