django 静态文件及路由分发

静态文件

  • 静态文件配置

    1. 配置静态文件得访问路径[该配置默认存在]

      1. 通过哪个URL地址找到静态文件

      2. STATIC_URL=‘/static‘

        # settings.py
        STATIC_URL = ‘/static/‘
        
      3. 说明:

        1. 指定访问呢静态文件时需要通过 /static/xxx或 http://127.0.0.1:8000/static/xxx

          [xxx表示具体得静态资源位置]

    • 配置静态文件得存储路径--STATICFILES_DIRS

      STATICFILES_DIRS保存得是静态文件在服务器端存储得位置

      # setting.py
      # Static files (CSS, JavaScript, Images)
      STATICFILES_DIRS= (
      	os.path.join(BASE_DIR, "static"),
      )
      
      
      #模板中访问静态文件 img标签为例
      # html中引入静态文件
      <img src="http://127.0.0.1:8000/static/img/tupian1.jpg" width=‘200px‘ height=‘200px‘>
      <img src="/static/img/tupian2.jpg" width=‘200px‘ height=‘200px‘>
      # 通过 {% static %} 标签访问静态文件
      1. 加载static {%load static %}
      2. 使用静态资源{% static ‘静态文件路径‘ %}
      样例:
      <img src="{% static ‘img/tupian3.jpg‘%}"
      

django应用及分布式路由

  • 应用在Django项目中是一个独立得业务模块,可以包含自己得路由、视图、模型、模板

  • 创建应用命令

    • python manage.py startapp music
    • 在settings.py的INSTALLED_APPS列表中配置按照此应用
  • 分布式路由

    • Django中,主路由配置文件urls.py可以不处理用户的具体路由,主路由配置文件中可以做请求的分发(分布式请求处理),具体的请求可以由各自的应用来进行处理

      • 主路由中调用include函数

      • 语法: include(‘app名字.url模块名‘)

      • 作用: 用于将当前路由转到哥哥应用的路由配置文件的urlpatterns中进行分布式处理

        # 主路由对请求进行转发
        from django.contrib import admin
        from django.urls import path,include
        urlpatterns = [
            path(‘admin/‘, admin.site.urls),
            path(‘users/‘, include(‘users.urls‘)),
            path(‘index/‘, include(‘index.urls‘)),
        ]
        
        # 具体请求由app应用来处理
        from django.urls import path
        from index import views
        urlpatterns=[
            path(‘login‘, views.login_view),
            path(‘index‘, views.index_view),
        ]
        
  • 应用下的模板

    • 1 手工在应用下创建templates文件夹

    • settings.py中开启应用模板功能

    • ‘APP_DIRS‘: True,
      
    • 应用下templates和项目下templates都存在式,django查找模板的规则是:

      • 优先查找项目目录同级的templates目录下的模板
      • 按照INSTALLED_APPS配置的应用顺序,逐层查找

django 静态文件及路由分发

上一篇:Docker容器修改端口映射


下一篇:字符串出现的topK问题