zoukankan      html  css  js  c++  java
  • python基础 django中reverse应用方法

    环境:python 3.6.4 django 1.1.10

    urlpatterns = [
        url(r'^index.html$', views.index, name="ind"),
        url(r'^books.html$', views.books, name="books"),
        url(r'^book/(w+)$', views.openbook, name="openbook"),
        url(r'^books/(?P<booknumber>)', views.book, name="book"),
        url(r'^', views.index, name="default"),

    这一部分展示了如何用传字典类型数据使用的占位符(?P<booknumber>),一定要有括号和?P
    def index(request):
    url=reverse('ind')
    print(url)
    return HttpResponse('<h1>图书馆欢迎你!</h1>')
    def books(request):
    return render(request,'lib_books.html')

    views.books()  对于返回这个页面,
    html对应代码
    <h1 url="{% url 'ind' %}">这里有很多书</h1>       
    <ul>
        <li><a href="/lib/book/123456">三体</a></li>
        <li><a href="/lib/book/000001">西游记</a></li>
    
    对于再模板中接收别名,可以接收自己和所在urlpattern中所有别名 

    按照:url(r'^book/(w+)$', views.openbook, name="openbook"),进入openbook()

    def openbook(request,booknumber):
    print('booknumber is ;',booknumber)
    url = reverse('book', kwargs={'booknumber': booknumber})
    print(url)
    return redirect(url)

    这里利用reverse(),生成url()其中的第一个参数,可以是kwarg={,},也可以是arg=(,),前者对应的url中正则参数一定腰带(?P<>)分组,而arg则直接进入正则表达式()分组

    def book(request,booknumber):
    import re
    booknumber=re.findall(r'd+$',request.path)
    print(request.path,'bm is :',booknumber)
    books={'123456':'santi','000001':'西游记'}
    bookname=books.get(booknumber[0])
    return render(request,'三体.html',{'bookname':bookname})
  • 相关阅读:
    一个貌似比较吊的递归转换为loop--总算成功了.
    为何反转迭代顺序就不会栈溢出了?
    将树形递归转换为loop
    递归和迭代之间的转换简单例子
    非线性递归函数转化为迭代函数举例
    将尾递归函数转换为迭代函数的利器
    转:LINUX/UNIX下的回车换行与WINDOWS下的区别
    property干嘛的
    eval和列表解析的一处陷阱
    剑指offer——16二进制中1的个数
  • 原文地址:https://www.cnblogs.com/yuanji2018/p/9876962.html
Copyright © 2011-2022 走看看