Django框架静态文件配置和URL解析

静态文件配置

1:#在django项目下创建一个static静态文件文件夹,在static文件夹下创建对应的css,img,js文件夹,用来存放css样式文件,图片和js代码,用于HTML引入
2:#在django项目的settings配置文件中,配置静态文件相关配置(setting文件的最下面)
    STATIC_URL = '/static/' #静态文件的文件路径别名,别名可以改,一般不改
    STATICFILES_DIRS = [  #静态文件的文件路径,就是创建的static的静态文件夹路径,变量必须是这个名字,django会指定这个变量名来查找文件路径
        os.path.join(BASE_DIR,'static')
    ]

3:HTML页面引入
{% load filter %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    #引入css文件
    <link rel="stylesheet" href="/static/css/index.css">
</head>
<body>
    {% res %}
    <h1>新项目首页</h1>
    <h1>{{ name | addhello:'你好个屁' }}</h1>
    <h1>{%  newtag '你好' '世界' %}</h1>
    #引入图片
    <img src="/static/img/1.jpg" alt="">
</body>
#引入js文件
<script src="/static/js/index.js"></script>
</html>

URL别名和反向解析

#url写法
    url(r'^home2/', views.home,name='home'),#name给路径其别名
    url(r'^index3/', views.index,name='index'),

#当页面的路径发生变化的时候,后台代码中所有的相关的路径都要发生改变,使用反向解析,使用别名的方式,就不会发生这种情况,修改路径只要在url的路由分发修改就可以了,后台中使用反向解析就可识别路径
from django.shortcuts import render,HttpResponse,redirect
from django.urls import reverse

def home(request):
    if request.method=='GET':
        return render(request,'home.html',{'name':'张达'})
    else:
        print('111')
        if request.POST.get('username')=='lijie':
            #reverse可以反向解析出别名代表的路径地址,
            return redirect(reverse('index'))

def index(request):
    return  render(request,'index.html')

#**************************************************************
#前段示例:
    <a href="{% url 'index' %}"></a>
    把路径变成{% url '路径别名' %},就可以反向解析路径

URL命名空间

路由分发 include

#在一个项目中可能有多个应用,如果使用项目的urls文件的话,不利于维护,可以使用include路由分发的方式,分发给不同的应用
1 在每个app下创建urls.py文件,写上自己app中每个页面的路径
2 在项目目录下的urls.py文件中做一下路径分发:
    from django.conf.urls import url,include
    from django.contrib import admin
    urlpatterns = [
        #当进来的路径是以app01/开头的,就会吧路径分发到app01的应用中,比如访问路径是app01/home/,以app01开头,就会home/这个路径分发给app01下面的urls文件去
        url(r'^app01/', include('app01.urls')),
        url(r'^app02/', include('app02.urls')),
    ]

命名空间namespace

#使用include分发不同路由的时候,如果在每个APP中有重复出现的路径别名,name在进行反向解析的时候,会在各个应用中查找这个路径别名,会吧最后一个查找到的路径进行解析,就会出现不是请求的app应用中那个别名的问题,使用namespace命名空间的方式,可以执行这个别名属于那个命名空间:就不会出现这个问题
示例代码:
    from django.conf.urls import url,include
    from django.contrib import admin
urlpatterns = [
    #使用namespace指定命名空间的名称,
    url(r'^app01/', include('app01.urls',namespace='app01')),
    url(r'^app02/', include('app02.urls',namespace='app02')),

#在每个app应用下,使用URL反向解析的时候指定别名的命名空间:
    后台:reverse('命名空间名称:别名') -- reverse('app01:home') #指定只在app01中查找这个别名,进行解析
    前段:hmtl:{% url '命名空间名称:别名' %}  -- {% url 'app01:home' %}

原文地址:https://www.cnblogs.com/luckinlee/p/11622274.html

时间: 2024-10-13 10:56:31

Django框架静态文件配置和URL解析的相关文章

Django之静态文件配置

在项目目录中打开settings.py,在最下面配置静态文件(css文件,js文件以及其他静态配置文件),比如说html使用到了jQuery框架,我们要在项目根目录下创建statics(可自定义),将jQuery文件放在该目录下,打开settings.py,最下面有一个变量STATIC_URL,新建一个列表为:STATICFILES_DIRS,将静态文件目录放在该列表中: # settings.py # 下面两个变量是配合使用的 STATIC_URL = '/static/' #别名,Djang

Django 应用 静态文件配置

Django 应用 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> #引入静态文件夹下的bootstrap css样式 <link rel="stylesheet" href="/static/plugins/bootstrap-3.3.7/

django的静态文件配置和路由控制

上一遍写到刚建完django项目,此时我登录页面中调用了js文件,执行后发现报错了找不到js这个文件 目录结构如图所示: 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 <script src="/statics/js.js"&

Django——静态文件配置

本文目的 最近用django开发项目,发现django的静态文件(js,css和img等)配置比较麻烦,开发环境和生产环境的配置还不一样,这里记录一下,作为备忘.我当前使用的版本是django v1.4.3. 吐槽:django的版本不兼容是个大问题,网上搜索相关问题时,解决方案到是一大推,但是均没有标注版本,导致均不能适用当前版本,走了不少弯路. 开发环境配置 需要下面几个步骤 1. 在app目录下创建static目录,将静态文件和相关文件夹放到此目录下,如your_app/static/im

apache静态文件配置

开发环境配置 需要下面几个步骤 1. 在app目录下创建static目录,将静态文件和相关文件夹放到此目录下,如your_app/static/img等 2. 确保settings.py中的INSTALLED_APPS中包含django.contrib.staticfiles 3. 设置settings.py中的STATIC_URL的值为“/static/” 4. 在模版中使用{{ STATIC_URL }}作为静态文件路径前缀.比如纯在图片文件your_app/static/img/logo.

Django框架之模板基础,静态文件配置

一.模板继承 目的是:减少代码的冗余 语法: {% block classinfo %} {% endblock %} 具体步骤: 1.创建一个base.html文件,2.把要显示的页面的内容写在这里面,也就是html要在浏览器显示的内容3.在right里面写个盒子 {% block classinfo %} {% endblock %} 在这里面写个空盒子,以后谁来扩展就在这个盒子里面添加相应的内容就行了 4.然后再创建一个.html文件,让这个继承base.html文件, {% extend

Django框架之模板继承和静态文件配置

https://www.cnblogs.com/haiyan123/p/7731959.html 一.模板继承 目的是:减少代码的冗余 语法: {% block classinfo %} {% endblock %} 具体步骤: 1.创建一个base.html文件, 2.把要显示的页面的内容写在这里面,也就是html要在浏览器显示的内容 3.在right里面写个盒子 {% block classinfo %} {% endblock %} 在这里面写个空盒子,以后谁来扩展就在这个盒子里面添加相应

Django静态文件配置、request方法、ORM简介、字段的增删改查

app的创建注意事项: 在Django新创建的app要在seetings.py中添加注册,才会生效 创建app:django-adminapp an startapp app名称 或者 python3 mansge.py startpp名称 手动创建的app不会自带存放html的templates文件夹,需要手动创建 Django静态文件配置 对于前端已经写好了的文件,我们只是拿过来使用,那么这些文件都可以称之为"静态文件"; 静态文件可以是:boostrap一类的前端框架,已经写好了

django之三剑客、静态文件配置、请求响应对象、数据库操作

三剑客 from django.shortcuts import render,HttpResponse,redirect HttpResponse # 返回字符串 render(response, 'a.html', locals()) # 返回html页面 并且可以给该html传值 redirect('/userlist') # 重定向 # 既可以是我们自己的路径也可以是网上的路径 django返回的都是HttpResponse对象 静态文件配置 ## 静态文件静态配置 用户能够在浏览器中输