New Usage of typing module in python

我原本想要分析一下 django webpack;但是写了一半,为了资料论述严谨,又不得不学习了 django component;在 django component 中,又发现了自己之前不知道的一些机制。无奈,先聊聊遇到的 typing 问题吧!

[阅读全文]

Django and Webpack

Webpack is a modern development method for frontend projects. Django is a common backend development framework for Python developers.

I believe that developing with Webpack can make Django development faster.

[阅读全文]

Crazy Import

最近发现 Django settings 在使用的时候,容易出现不经过检查的问题。 因此,想要在 settings 的基础上严格约束一下,减少问题。

[阅读全文]

ORM 中的 Pattern

最近在做技术选型,想要引入一些新的开发语言,开发技术到技术团队。大众编程语言在 WEB 方面的稳定性,已经被人所熟知了。但是数据库版本控制方面,每个程序设计语言做的深度和稳定性都有所区别。数据库版本控制和 ORM 密切相关。而…

[阅读全文]

Django tricks

关于 session

django.contrib.sessions.middleware | Django documentation | Django

session 是使用 cookie 来进行判断的,通过 session_cookie_name 来提取,然后通过 SessionStore() 来保存。

因此,Django 也是通过 sessionid 来区分用户;(或者其他什么名称)。

使用 cache 作为全局变量

cache.set(‘foo’, ‘bar’) # another function cache.get(‘foo’) # get ‘bar’

使用 cache , django-redis 是一个好方法。可以在使用 cache.lock变量,在应用层面加锁,来完成异步操作,还可以支持分布式应用,十分方便。

django 

Django 写个过滤器 filter

用 Django 快速开发一个项目,发现 Django 的模板本身不带有整除功能,因此自己手写一个。

├── templates
│   ├── app
│   └── base
├── templatetags
│   ├── app_extras.py
│   ├── __init__.py
│   └── __pycache__
├── tests.py
├── urls.py
├── utils.py
└── views.py

这是目录结构。在 urls.py 添加 app 的名称,例如 app_name = ‘app’ ,然后在与models.py 同级的目录下,新建一个 python 包, templatetags 的,新建自己需要的包名即可。

app_extra.py:

from django import template

register = template.Library()


def mod(value):
    return value % 11


register.filter('mod', mod)

这里因为需求比较简单,因此直接就赋值了 11.

应用到模板中:

{% load app_extra %}

{% for image in image_list %}
	{% if forloop.counter|mod == 0 %}
		<h3>检查点</h3>
	{% endif %}
{% endfor %}

随后即可看到结果。

[阅读全文]