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的默认值
半斤八两开始写BLOG了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】