Django Path转换器自定义及正则代码实例

Django默认Path转换器

  • str:匹配任何非空字符串,但不含斜杠/,如果你没有专门指定转换器,那么这个是默认使用的;
  • int:匹配0和正整数,返回一个int类型
  • slug:可理解为注释、后缀、附属等概念,是url拖在最后的一部分解释性字符。该转换器匹配任何ASCII字符以及连接符和下划线,比如' building-your-1st-django-site‘;
  • uuid:匹配一个uuid格式的对象。为了防止冲突,规定必须使用破折号,所有字母必须小写,例如'075194d3-6885-417e-a8a8-6c931e272f00‘ 。返回一个UUID对象;
  • path:匹配任何非空字符串,重点是可以包含路径分隔符'/‘。这个转换器可以帮助你匹配整个url而不是一段一段的url字符串

​step1 . 在urls.py 的同级目录下,创建converters.py

class Year_Converters():
  regex = '\d{4}'
  def to_python(self,value):
    return int(value)

  def to_url(self,value):
    # return ;04d' % value
    return str(value)

step 2 注册converters 在同级urls,py 文件

from django.urls import path,register_converter
from . import views
from . import converters

 #注册转换器
 register_converter(converters.Year_Converters,'year')
 urlpatterns = [
  path('show1/<year:arg>', views.show1),
]

正则 在urls,py 文件中,注意参数需要加() ,这里的参数是元组

from django.urls import re_path
urlpatterns = [
  re_path('article/(\d+)/', views.index),
]

正则关键字

re_path(r'^show3/(?P<id>\d{4})/', views.show3)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Django框架教程之正则表达式URL误区详解

    前言 利用Django开发网站,可以设计出非常优美的url规则,如果url的匹配规则(包含正则表达式)组织得比较好,view的结构就会比较清晰,比较容易维护.但这其中可能会有一些误区,下面就来给大家总结下. 问题: 我学习的视频大概是2015年录的,里面用的Django版本比较老关于正则表达式URL这一块都是用的url("url(r'^admin/', admin.site.urls),")方法.而我自己练习的时候是下载的最新版本,而正则表达式URL用的确实path("pat

  • Django查找网站项目根目录和对正则表达式的支持

    如果你想通过http://127.0.0.1:8000/看网站根目录你将看到一个404错误消息.Django不会增加任何东西在网站根目录,在任何情况下这个URL都不是特殊的 就像在URLconf中的其他条目一样,它也依赖于指定给它的URL模式. 尽管匹配网站根目录的URL模式不能想象,但是还是值得提一下的. 当为网站根目录实现一个视图,你需要使用URL模式`` '^$'`` , 它代表一个空字符串. 例如: from mysite.views import hello, my_homepage_

  • Django中FilePathField字段的用法

    class FilePathField(path=None[, match=None, recursive=False, max_length=100, **options]) 一个 CharField ,内容只限于文件系统内特定目录下的文件名.有三个参数, 其中第一个是 必需的: FilePathField.path 必填.这个FilePathField 应该得到其选择的目录的绝对文件系统路径.例如: "/home/images". FilePathField.match 可选的.F

  • 解决新django中的path不能使用正则表达式的问题

    新版的path 虽然 取代了 之前的url,但是在写路由的时候不能在路由中直接写正则表达式,不然会找不到页面. 解决方法 使用re_path from django.urls import re_path,path urlpatterns = [ path('admin/', admin.site.urls), re_path('edit/(\d+)',views.edit), ] 这样就可以 使用正则了. 以上这篇解决新django中的path不能使用正则表达式的问题就是小编分享给大家的全部内

  • 在Django中URL正则表达式匹配的方法

    Django框架中的URL分发采用正则表达式匹配来进行,以下是正则表达式的基本规则: 官方演示代码: from django.conf.urls import url from . import views urlpatterns = [ url(r'^articles/2003/$', views.special_case_2003), url(r'^articles/([0-9]{4})/$', views.year_archive), url(r'^articles/([0-9]{4})/

  • django2笔记之路由path语法的实现

    9月23,Django发布了2.0a1版本,这是一个 feature freeze 版本,如果没有什么意外的话,2.0正式版不会再增加新的功能了.按照以往的规律,预计正式版将在12月发布. 备注:Django 2.0 于12月2日已经正式发布. (链接) 2.0无疑是一个里程碑版本,移除了对 Python2.7 的支持,最少需要 3.4 以上,建议使用3.5以上的版本. What's new in Django2.0 文档中一共列出了三个新的特性: 更简单的URL路由语法 (Simplified

  • Django web框架使用url path name详解

    quicktool/view.py文件修改视图函数index(),渲染一个home.html模板 from django.shortcuts import render def index(request): return render(request, 'home.html') quicktool(应用app)下创建一个templates文件夹(模板),在templates下创建一个home.html <!DOCTYPE html> <html> <head> <

  • Django Path转换器自定义及正则代码实例

    Django默认Path转换器 str:匹配任何非空字符串,但不含斜杠/,如果你没有专门指定转换器,那么这个是默认使用的: int:匹配0和正整数,返回一个int类型 slug:可理解为注释.后缀.附属等概念,是url拖在最后的一部分解释性字符.该转换器匹配任何ASCII字符以及连接符和下划线,比如' building-your-1st-django-site': uuid:匹配一个uuid格式的对象.为了防止冲突,规定必须使用破折号,所有字母必须小写,例如'075194d3-6885-417e

  • Python实现自定义读写分离代码实例

    这篇文章主要介绍了Python实现自定义读写分离代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 思路 自定义Session类 重写get_bind方法 根据self._flushing判断读写操作, 选择对应的数据库 自定义SQLAlchemy类 重写create_session, 在其中使用自定义的Session类 from flask import Flask from flask_sqlalchemy import SQLAlch

  • Django app配置多个数据库代码实例

    这篇文章主要介绍了Django app配置多个数据库代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 每个app使用不同的数据库 1. 配置数据库连接 # settings.py # DATABASES中必须要有default字段 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'db', 'USER': '', 'PASSWORD': ''

  • c#生成自定义图片方法代码实例

    本篇文章给大家带来的内容是关于c# 如何生成自定义图片?c# 生成自定义图片方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. using System.Drawing;using System.IO;using System.Drawing.Imaging;using System;namespace treads { /// <summary> /// 生成略缩图 /// </summary> public class Class2 { private Ima

  • Django QuerySet查询集原理及代码实例

    一 概念 Django的ORM中存在查询集的概念. 查询集,也称查询结果集.QuerySet,表示从数据库中获取的对象集合. 当调用如下过滤器方法时,Django会返回查询集(而不是简单的列表): all():返回所有数据. filter():返回满足条件的数据. exclude():返回满足条件之外的数据. order_by():对结果进行排序. 对查询集可以再次调用过滤器进行过滤,也就意味着查询集可以含有零个.一个或多个过滤器.过滤器基于所给的参数限制查询的结果. 从SQL的角度讲,查询集与

  • Django多个app urls配置代码实例

    快速测试创建项目与app django-admin startproject mysite django-admin startapp app1 django-admin startapp app2 mysite下的urls.py文件 from django.contrib import admin from django.urls import include, path urlpatterns = [ path('admin/', admin.site.urls), path('app1/'

  • SpringBoot Shiro配置自定义密码加密器代码实例

    shiro主要有三大功能模块: 1. Subject:主体,一般指用户. 2. SecurityManager:安全管理器,管理所有Subject,可以配合内部安全组件.(类似于SpringMVC中的DispatcherServlet) 3. Realms:用于进行权限信息的验证,一般需要自己实现. 细分功能 1. Authentication:身份认证/登录(账号密码验证). 2. Authorization:授权,即角色或者权限验证. 3. Session Manager:会话管理,用户登录

  • JavaScript自定义超时API代码实例

    API是提供给不同语百言的一个接口,也就是对应的函数里面提供了相应的方法.我们只要用js的语法去调用想要的功能就可以.例如度js里面的BOM有screen的方法,他就是浏览器提供给我们的接口,能够对浏览器进行操作. 实现一个Ajax请求时回调超时一个函数 function timeoutify(fn,delay) { var intv = setTimeout( function(){ // 设置超时定时器 intv = null; fn( new Error( "Timeout!"

  • Springmvc请求参数类型转换器及原生api代码实例

    一.springmvc的xml配置文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.spr

  • django项目中使用手机号登录的实例代码

    本文使用聚合数据的短信接口,需要先获取到申请接口的appkey和模板id 项目目录下创建ubtils文件夹,定义返回随机验证码和调取短信接口的函数 function.py文件 import random import re # 随机数 def range_num(num): # 定义一个种子,从这里面随机拿出一个值,可以是字母 seeds = "1234567890" # 定义一个空列表,每次循环,将拿到的值,加入列表 random_num = [] # choice函数:每次从see

随机推荐