zoukankan      html  css  js  c++  java
  • Django基于Pycharm开发之三[命名空间 与过滤器]

    关于命名空间的问题,在project项目中,我们可以设置路由类似于:

    from django.conf.urls import url,include
    from django.contrib import admin
    from django.conf import settings
    from django.conf.urls.static import static

    urlpatterns = [
    url(r'^img_db/', include('img_db.urls')),
    url(r'^polls/', include('polls.urls')),
    url(r'^admin/', admin.site.urls),
    url(r'^blog/', include('blog.urls')),
    ]

    # urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
    # urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

    但是当一个解决方案包含多个项目的时候,就需要用到命名空间来处理路由了
    from django.conf.urls import url

    from .views import *

    app_name='polls'
    urlpatterns = [
    url(r'^$', index, name='index'),
    url(r'^test/$', index_export, name="index_export"),
    url(r'^(?P<question_id>[0-9]+)/$', detail_version2, name='detail'),
    url(r'^(?P<question_id>[0-9]+)/results/$', results, name='results'),
    url(r'^(?P<question_id>[0-9]+)/vote/$', vote, name='vote'),
    ]

    此时,给项目添加app_name来使用路由中的name来达到后期可以动态利用路由的问题
    比如我们在页面中可以写:
    <a href="{% url 'polls:detail' question.id %}">vote again?</a>
    <form action="{% url 'polls:vote' question.id %}" method="post">
    django的过滤器和angular的过滤器是非常类似的,在django/template/defaultfilters.py中定义了很多过滤器的
    @register.filter(is_safe=False)
    def pluralize(value, arg='s')

    用法 vote{{choice.vote|pluralize }}
    * If value is 0, vote{{ value|pluralize }} display "0 votes".
    那么最后生成就是 vote{{0|pluralize}}---> value+ (vote + s) 生成后缀信息 s为arg的默认值



  • 相关阅读:
    曲演杂坛--Update的小测试
    曲演杂坛--使用TRY CATCH应该注意的一个小细节
    Backup--查看备份还原需要的空间
    INDEX--创建索引和删除索引时的SCH_M锁
    曲演杂坛--蛋疼的ROW_NUMBER函数
    曲演杂坛--使用ALTER TABLE修改字段类型的吐血教训
    曲演杂坛--查看那个应用连接到数据库
    TempDB--临时表的缓存
    (转)spark日志配置
    CDH版本java开发环境搭建
  • 原文地址:https://www.cnblogs.com/freewsf/p/8520204.html
Copyright © 2011-2022 走看看