django for 前端_web前端基础知识 - Django进阶

1. 路由系统1.1 单一路由对应url(r'^index$', views.index),1.2 基于正则的路由url(r'^index/(\d*)', views.index),url(r'^manage/(?P\w*)/(?P\d*)', views.manage),找到urls.py文件,修改路由规则from django.conf.urls import url,includefrom ...
摘要由CSDN通过智能技术生成

1. 路由系统

1.1 单一路由对应

url(r'^index$', views.index),

1.2 基于正则的路由

url(r'^index/(\d*)', views.index),

url(r'^manage/(?P\w*)/(?P\d*)', views.manage),

找到urls.py文件,修改路由规则

from django.conf.urls import url,include

from django.contrib import admin

from cmdb import views

urlpatterns = [

url(r'^index', views.index),

url(r'^detail-(\d+).html/', views.detail),

]

在views.py文件创建对应方法

USER_DICT = {

'1':{'name':'root1','email':'root@live.com'},

'2':{'name':'root2','email':'root@live.com'},

'3':{'name':'root3','email':'root@live.com'},

'4':{'name':'root4','email':'root@live.com'},

}

def index(request):

return render(request,"index.html",{"user_dict":USER_DICT})

def detail(request,nid):  # nid指定的是(\d+)里的内容

detail_info = USER_DICT[nid]

return render(request, "detail.html", {"detail_info": detail_info})

1.3 url分组

在url.py增加对应路径

from django.conf.urls import url,include

from django.contrib import admin

from cmdb import views

urlpatterns = [

url(r'^index', views.index),

url(r'^detail-(?P\d+)-(?P\d+).html/', views.detail),
   # nid=\d+ uid=\d+

]

在views.py文件创建对应方法

def detail(request,**kwargs):

print(kwargs)

#{'nid': '4', 'uid': '3'}

nid = kwargs.get("nid")

detail_info = USER_DICT[nid]

return render(request, "detail.html", {"detail_info": detail_info})

1.4 为路由映射名称

from django.conf.urls import url,include

from django.contrib import admin

from cmdb import views

urlpatterns = [

url(r'^asdfasdfasdf/', views.index, name='i1'), #第一种方式i1

url(r'^yug/(\d+)/(\d+)/', views.index, name='i2'), #第二种方式i2

url(r'^buy/(?P\d+)/(?P\d+)/', views.index, name='i3'), #第三种方式i3

在templates目录下的index.html

{#第一种方法i1 路径asdfasdfasdf/#}

{#

#}

{#第二种方法i2 路径yug/1/2/#}

{#

#}

{#第三种方法i3 路径buy/1/9//#}

1.5 根据app对路由分类

主程序urls.py文件

from django.conf.urls import url,include

from django.contrib import admin

urlpatterns = [

url(r'^monitor/', include('monitor.urls')), #调整到monitor目录中的urls.py文件

]

cmdb下的url.py文件

from django.conf.urls import url

from django.contrib import admin

from monitor import views

#

urlpatterns = [

url(r'^login', views.login),

]

1.6 获取当前URL

view.py中配置

def index(request):

print(request.path_info) #获取客户端当前的访问链接

# / index

return render(request,"index.html",{"user_dict":USER_DICT})

在templates目录下的index.html文件

1.7 默认值

在url.py增加对应路径

from django.conf.urls import url

from django.contrib import admin

from app01 import views

urlpatterns = [

url(r'^index/',views.index,{"name":"root"}),

]

在views.py文件创建对应方法

from django.shortcuts import render,HttpResponse

def index(request,name):

return HttpResponse("%s is ok"%name)

运行并访问http://127.0.0.1:8000/index,页面显示:root is ok

1.8 命名空间

不同的url指向同一个视图就需要借助命名空间

主程序url.py文件

from django.conf.urls import url,include

urlpatterns = [

url(r'^a/', include('app01.urls', namespace='author-polls')),

url(r'^b/', include('app01.urls', namespace='publisher-polls')),

]

app01下的urls.py文件

from django.conf.urls import url

from app01 import views

app_name = 'app01'

urlpatterns = [

url(r'^index/$', views.detail, name='detail')

]

在views.py文件创建对应方法

from django.shortcuts import render,HttpResponse

def index(request):

return HttpResponse("ok")

访问http://127.0.0.1:8000/a/index,页面显示"ok"

以上定义带命名空间的url之后,使用name生成URL时候,应该如下:

v = reverse('author-polls:detail')

{% url 'author-polls:detail'%}

2. 视图

2.1 获取用户请求数据

request.GET

request.POST

request.FILES

其中,GET一般用于获取/查询 资源信息,而POST一般用于更新 资源信息 ; FILES用来获取上传文件;

2.2 checkbox等多选的内容

在templates目录下创建login.html

Title

男:

女:

人妖:

修改views.py文件对表单处

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值