int_to_base36 and base36_to_int

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
def base36_to_int(s):
    return int(s, 36)

def int_to_base36(i):
    digits = "0123456789abcdefghijklmnopqrstuvwxyz"
    factor = 0
    # Find starting factor
    while True:
        factor += 1
        if i < 36 ** factor:
            factor -= 1
            break
    base36 = []
    # Construct base36 representation
    while factor >= 0:
        j = 36 ** factor
        base36.append(digits[i / j])
        i = i % j
        factor -= 1
    return ''.join(base36)

More like this

  1. A custom URL shortening view, for use with rev=canonical by simon 4 years, 1 month ago
  2. Redirect view based on GEO by jorjun 3 years, 9 months ago
  3. Neat one off redirect by adamlofts 4 years, 8 months ago
  4. Class-Based AJAX fallback view by fahhem 2 years, 4 months ago
  5. packjs templatetag by kyprizel 5 years, 5 months ago

Comments

(Forgotten your password?)