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一模一样