• django配置templates、static、media和连接mysql数据库


    1.模板文件

    # =======templates配置=======
    if os.path.exists(os.path.join(BASE_DIR, 'templates')) is False:
        os.mkdir(os.path.join(BASE_DIR, 'templates'))
    TEMPLATES = [
        {
            # 模板引擎,内置的模板引擎有:
            # 1. 'django.template.backends.django.DjangoTemplates'
            # 2.  'django.template.backends.JInJa2.JInja2'
            # 你也可以使用非Django的模板引擎
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
    
            # 引擎用于查找模板源文件的目录,按搜索顺序排列
            'DIRS': [os.path.join(BASE_DIR, 'templates'), os.path.join(BASE_DIR, "mobile_app/dist"),
                     os.path.join(BASE_DIR, "big_screen/screenpro/dist"), ],
    
            # 引擎是否在已经安装的应用程序的目录内查看模板源文件
            'APP_DIRS': True,
    
            # 传递给模板引擎(backend)的其他参数,不同引擎,可用的参数不一样
            'OPTIONS': {
                'context_processors': [
                    # 全局的processors,它默认是被传递给views中html模板的RequestContext对象
                    'django.template.context_processors.debug',
                    'django.template.context_processors.request',
                    'django.contrib.auth.context_processors.auth',
                    'django.contrib.messages.context_processors.messages',
                    # u"在模板变量中添加 {{ MEDIA_URL }}"
                    "django.template.context_processors.media",
                    # u"在模板变量中添加 {{ STATIC_URL }}"
                    "django.template.context_processors.static",
                    # 添加 移动标识 device(自定义)
                    "prod_core.template.context_processors.mobile",
                ],
            },
        },
    ]
    

    2.静态文件

    # ======static配置======
    if os.path.exists(os.path.join(BASE_DIR, 'static')) is False:
        os.mkdir(os.path.join(BASE_DIR, 'static'))
    
    # 由templates配置中"django.template.context_processors.static"读取
    # 可以在html模板上使用{{ STATIC_URL }}读取STATIC_URL 
    STATIC_URL = '/static/'
    
    # python manage.py collectstatic  命令收集静态文件的目录,将各个app目录下的static收集于项目目录下的static中
    STATIC_ROOT = 'static'
    
    # 放各个app的static目录及公共的static目录
    STATICFILES_DIRS = [
        os.path.join(BASE_DIR, "mobile_app/dist/static/"),
        os.path.join(BASE_DIR, "big_screen/screenpro/dist/static/")
    ]
    
    STATICFILES_FINDERS = (
        # 用来从 STATICFILES_DIRS 指定的路径中查找额外的静态文件
        'django.contrib.staticfiles.finders.FileSystemFinder',
        # 从 INSTALLED_APPS 列表内的 APP 所在包的 static 目录中查找资源文件
        'django.contrib.staticfiles.finders.AppDirectoriesFinder',
        # other finders.. css,js等文件压缩
        'compressor.finders.CompressorFinder',
    )
    
    # 项目一级路由urls.py配置,方便通过url访问,实测不添加也可以访问
    from django.views.static import serve
    url(r'^static/(?P<path>.*)$', serve, {'document_root': settings.STATIC_ROOT}),

    3.媒体文件

    # ======media配置======
    if os.path.exists(os.path.join(BASE_DIR, 'media')) is False:
        os.mkdir(os.path.join(BASE_DIR, 'media'))
    # media目录,相当于设置媒体文件的绝对路径
    MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
    # 由templates配置的django.template.context_processors.media读取
    # 在html模板上使用{{ MEDIA_URL }}读取媒体根目录
    MEDIA_URL = '/media/'
    
    # 项目一级路由urls.py配置,方便通过url访问
    from django.views.static import serve
    url(r'^media/(?P<path>.*)/$', serve, {"document_root": settings.MEDIA_ROOT}),

     4.数据库配置

    # =======数据库配置======
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',  # 数据库引擎
            'HOST': 'localhost',  # 主机
            'USER': 'root',  # 用户
            'PASSWORD': 'root',  # 密码
            'PORT': '3306',  # 端口号
            'NAME': 'mysite',  # 数据库名
        }
    }
    

    ps:

      使用django-compressor压缩静态文件:https://www.cnblogs.com/skying555/p/5972735.html

  • 相关阅读:
    字符编码
    python基础5
    python基础4
    python基础3
    python基础2
    一、计算机基础
    Django中间件
    Django Form表单组件
    django简介,安装,文件介绍,三板斧(render,HttpResponse,redirect)HTTP协议,用socket实现简单版web框架,用wsgiref,jinja2,pymysql实现Django运行流程
    css,浮动,清浮动,溢出overflow,定位,圆形,透明度,z-index
  • 原文地址:https://www.cnblogs.com/konglingxi/p/9406757.html
Copyright © 2020-2023  润新知