zoukankan      html  css  js  c++  java
  • python---django中url访问方法

    只是了解,不推荐使用,毕竟干扰太多,任意冲突,也没有解耦,应该使用路由分发

    在url匹配中支持正则匹配,例如:

    from django.conf.urls import include, url
    from django.contrib import admin
    from blog import views
    from ts import views as v2

    urlpatterns = [ url(r'^$', 'HelloWorld.views.home', name='home'), ]

    访问方法一:

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

    匹配以userinfo开头,但是不一定以其结尾,在后面加上其他后缀也是允许的

    http://127.0.0.1:8080/userinfo
    http://127.0.0.1:8080/userinfodasf

    访问方法二:

    url(r'^article/2013/66$',v2.show_url),

    匹配以article开始,66结尾,格式按照,但是在中间加入其他也是允许的:

    http://127.0.0.1:8080/article/2013/66
    http://127.0.0.1:8080/article/2013d/d66

    访问方法三:

    url(r'^article/([0-9]{4})/$',v2.show_url_3),

    在()中数据是为传入参数

    http://127.0.0.1:8080/article/2012/

    可获取,处理,但是获取方法不不受限制:

    def show_url_3(req,*argc):return HttpResponse("<h1>year"+argc[0]+"</h1>")

    def show_url_3(req,y):
        return HttpResponse("<h1>year"+y+"</h1>")

    访问方法四:

    url(r'^article/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/$',v2.show_url_4),

    限制传参,参数名必须一致:

    http://127.0.0.1:8080/articel/2012/23/
    def show_url_4(req,year,month):
    
        return HttpResponse("<h1>year:"+year+"	month:"+month+"</h1>")

    访问方法五:

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

    后台自定义传参:作用:例如对于不同情况,传入不同模板文件名,同一函数处理时获取不同文件名,进行渲染返回(实际不用这种方法),访问直接使用index即可,但是函数传参名必须一致:

    def index(req,name):
        return HttpResponse("<h1>ok</h1>")

    访问方法六:

    url(r'^login',views.login,name="lg"),

    为方法设置别名,可以在前端使用时简写,在返回给客户端 时,在渲染时会被替换为原来路径

    def login(req):
        if req.method == "POST":
            if req.POST.get("username",None)=="fsaf" and req.POST.get("password",None)=="123456":
                return HttpResponse("<h1>ok</h1>")
        return render(req, "login.html")

    使用方法:

        <form action="{% url 'lg' %}" method="post">
            <input type="text" name="username"/>
            <input type="password" name="password"/>
            <input type="submit">
        </form>

     也可以进行传参:

    url(r'^all/(?P<article_type_id>d+).html$',home.index,name='index'),

    在视图函数中使用:

    reverse("index",kwargs={"article_type_id":1}) ==> all/1.html

    在HTML代码中进行使用:

    {% url "index" article_type_id=1 %}  ==>  all/1.html

     或者:

    url(r'^all/(d+).html$',home.index,name='index'),
    reverse("index",args=(2,)) ==> all/2.html
    {% url "index" 2 %}  ==>  all/2.html

     注意引入:

    from django.core.urlresolvers import reverse
  • 相关阅读:
    HDU 3879 Base Station 最大权闭合图
    自己定义头像处理,轻巧有用,非常多强大的小技巧在里面哦,快来赞美我一下吧^_^
    【Spring实战】—— 8 自动装配
    【Spring实战】—— 7 复杂集合类型的注入
    【Spring实战】—— 6 内部Bean
    【Spring实战】—— 5 设值注入
    【Spring实战】—— 4 Spring中bean的init和destroy方法讲解
    【Spring实战】—— 3 使用facotry-method创建单例Bean总结
    【Spring实战】—— 2 构造注入
    【Spring实战】—— 1 入门讲解
  • 原文地址:https://www.cnblogs.com/ssyfj/p/8641941.html
Copyright © 2011-2022 走看看