码迷,mamicode.com
首页 > 其他好文 > 详细

Django知识点

时间:2018-03-08 02:39:27      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:range   127.0.0.1   with   之间   obj   就是   全局   archive   pytho   

urlpatterns = [
    url(r^admin/, admin.site.urls),
    url(r^index/, views.index),
]
views.index调用即index()时默认会传入一个request

 

-----------------------------------------------------
无名分组:
    urlpatterns = [
        url(r^archive/(\d+), views.archive),
    ]

    备注:url(r^archive/(\d+), views.archive),
    1:\d+表示匹配一个或多个数字:
    2:此处的加括号()表示分组,对应的函数archive()可以多传一个值
    views.py里
        def archive(request,id):此处的id是(\d+)传递的


http://127.0.0.1:8001/archive/12
def archive(request,id):
    return HttpResponse( id)打印结果为12

url(r^archive/(\d+)$, views.archive),匹配结尾的
-------------------------------------------
同时接收两个值需要两个\d均加括号,才能传递给视图函数
http://127.0.0.1:8001/archive2/2014/12
url(r^archive2/(\d{4})/(\d{2}), views.archive2),
def archive2(request,year,month):
    return HttpResponse(year+month)
------------------------------------------

-----------------------------------------------------
有名分组(就是Python的关键字参数形式传给视图):
    定义:
        urlpatterns = [
            url(r^archive2/(?P<y>\d+)/(?P<m>\d{2}), views.archive2),
        ]
        1、(\d+)
        2在前半括号后加?P<y>
         2.1:?P<>固定形式
         2.2:y表示虚参,随便定义
     调用:
         def archive2(request,y,m):
            return HttpResponse(y+m)
----------------------------------------------------------------------------

 

 

多个应用时用:
多个应用的url都放在全局的urls.py里不合适也很麻烦,需要做到解耦

项目的urls.py文件需要导入include
from django.conf.urls import url,include
from django.contrib import admin
from app01 import views
urlpatterns = [
    url(r^app01/, include(app01.url)),
]

应用的url
from django.conf.urls import url
from django.contrib import admin
from app01 import views
urlpatterns = [
    url(r^archive/(\d+)$, views.archive),
    url(r^archive2/(?P<y>\d+)/(?P<m>\d{2}), views.archive2),
]

 

def index(request):
    # book_list=Book.objects.filter(price__gt=39) #价格大于39元的书
    # book_list = Book.objects.filter(price__lt=8)#价格大于39元的书
    # book_list = Book.objects.filter(title__contains=‘py‘)#title包含py的书
    # book_list = Book.objects.filter(title__startswith=‘py‘)#title以py开头的书
    # book_list = Book.objects.filter(title__endswith=‘va‘)  # title以va结尾的书
    # book_list = Book.objects.filter(price__in=[8,9,10])#价格在[8,9,10]列表里的书
    book_list = Book.objects.filter(price__range=[20,89])  # 价格在20到89之间的的书
    return render(request,query.html,{"book_list":book_list})

 

Django知识点

标签:range   127.0.0.1   with   之间   obj   就是   全局   archive   pytho   

原文地址:https://www.cnblogs.com/wanghuaqiang/p/8525702.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!