django静态文件配置 & request对象
目录
静态文件配置
静态文件
静态文件:前端已经写好了的能够直接调用使用的文件都可以称之为静态文件
网站写好的js文件 网站写好的css文件 网站用到的图片文件 第三方前端框架 即:拿来就可以直接使用的文件
静态文件的文件夹static
将网站使用的静态文件默认都放在static文件夹下
一般情况下在static文件夹下还会做进一步的划分处理 - static - js(自己写的js代码) - css(自己写的css代码) - img 其他第三方文件
静态文件配置
STATIC_URL = ‘/static/‘ # 类似于访问静态文件的令牌,如果想要访问静态文件,就必须以static开头 ‘‘‘ src="/static/bootstrap-3.3.7-dist/js/bootstrap.min.js" /static/令牌 去静态文件配置列表中的路径中从上往下依次查找bootstrap-3.3.7-dist/js/bootstrap.min.js,全部文件都找过之后找不到才会报错 ‘‘‘ # 静态文件配置 STATICFILES_DIRS = [ os.path.join(BASE_DIR,‘static‘), ]
- 小知识补充
在写django项目的时候,可能会出现后端代码修改了但是前端页面没有变化的情况 - 可能在同一个端口开了好几个django项目,比如终端和pycharm各开了一个django项目 - 浏览器缓存问题,将浏览器自动缓存取消(浏览器右键检查---settings---networks---disabled cache)
静态文件之动态解析令牌名称
# html文件 {% load static %} <link rel="stylesheet" href="{% static ‘bootstrap-3.3.7-dist/css/bootstrap.min.css‘ %}"> <script src="{% static ‘bootstrap-3.3.7-dist/js/bootstrap.min.js‘ %}"></script>
静态文件配置总结
HTML文件中
{% load static %} <link rel="stylesheet" href="{% static ‘bootstrap-3.3.7-dist/css/bootstrap.min.css‘ %}"> <script src="{% static ‘bootstrap-3.3.7-dist/js/bootstrap.min.js‘ %}"></script>
settings.py文件中
STATIC_URL = ‘/static/‘ STATICFILES_DIRS = [ os.path.join(BASE_DIR,‘static‘), ]
request对象方法初识 --- 以用户登陆界面为例
form表单method
form表单中的method默认是get请求数据,当点了提交按钮之后数据会出现在url的后面
在前期使用django提交请求的时候,method应该改为post
form表单的action
- 1.不写 默认朝当前所在的url提交数据,即后端url对应的视图函数
- 2.全写 指名道姓
- 3.只写后缀 /login/,后端url对应的视图函数
注意事项
在前期使用django提交post请求的时候,需要去配置文件中注释掉一行代码,不注释掉的话,打开网页会出现403的错误
MIDDLEWARE = [ ‘django.middleware.security.SecurityMiddleware‘, ‘django.contrib.sessions.middleware.SessionMiddleware‘, ‘django.middleware.common.CommonMiddleware‘, # ‘django.middleware.csrf.CsrfViewMiddleware‘, ‘django.contrib.auth.middleware.AuthenticationMiddleware‘, ‘django.contrib.messages.middleware.MessageMiddleware‘, ‘django.middleware.clickjacking.XFrameOptionsMiddleware‘, ]
request对象方法初识
- request.POST
def login(request): # request.method,可以返回请求数据的格式 print(request.method) if request.method == ‘POST‘: # request.POST,获取用户提交的数据,不包括文件 print(request.POST) # <QueryDict: {‘username‘: [‘root‘], ‘password‘: [‘123‘], ‘hobby‘: [‘read‘, ‘read‘]}> res = request.POST # res.get(‘username‘),只获取列表中的最后一个元素 print(res.get(‘username‘),type(res.get(‘username‘))) # root <class ‘str‘> # res.getlist(‘hobby‘)直接将列表取出 print(res.getlist(‘hobby‘),type(res.getlist(‘hobby‘))) # [‘read‘, ‘read‘] <class ‘list‘> return HttpResponse(‘登陆成功‘) return render(request,‘login.html‘)
- request.GET
方法与产生的数据格式与request.POST一模一样