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一模一样
posted @ 2020-05-26 19:43  微信搜索-程序媛小庄  阅读(206)  评论(0编辑  收藏  举报