1. url()的使用
情况1:
re_path(r"^book/", views.book)
情况2:
url(r"^levelA/", ([
url(r"^levelB1/", ([
url(r"^levelC1/", levelC1),
url(r"^levelC2/", levelC2),
], None, None)),
url(r"^levelB2/", levelB2),
url(r"^levelB3/", levelB3),
], None, None))
2. 单例模式(Singleton Pattern)
单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。
在 Python 中,我们可以用多种方法来实现单例模式:
使用 __new__
class Singleton(object):
_instance = None
def __new__(cls, *args, **kwargs):
if not cls._instance:
cls._instance = super(Singleton, cls).__new__(cls, *args, **kwargs)
return cls._instance
class MyClass(Singleton):
a = 1
在上面的代码中,我们将类的实例和一个类变量 _instance
关联起来,如果 cls._instance
为 None 则创建实例,否则直接返回 cls._instance
。
3. Django的Model继承
from django.db import models
class UserInfo(models.Model):
nation = models.CharField(max_length=32)
class Meta:
abstract = True # 设置这个属性为True时,Django不会在数据库中创建这个表,而是当作需要被继承的model
class UserInfoA(UserInfo):
tt = models.CharField(max_length=32)
4. Django的MEDIA配置
在settings.py文件中进行配置:
STATIC_URL = '/static/'
# Media配置
MEDIA_URL = "media/"
MEDIA_ROOT = os.path.join(BASE_DIR, "media")
在项目urls.py文件中进行配置
from django.conf.urls import url, include
from django.contrib import admin
from django.views.static import serve
from xxx import settings
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^api/course/', include("Course.urls")),
url(r'media/(?P<path>.*)', serve, {'document_root': settings.MEDIA_ROOT})
]