django:HttpResponse,render,redirect 与 静态文件配置。

本文详细介绍了Django项目的创建、运行、应用开发,以及关键的视图函数、渲染模板、静态文件配置。重点演示了HttpResponse、render和redirect的用法,并展示了如何正确设置STATIC_URL和静态文件的引用方式。
摘要由CSDN通过智能技术生成

Django必会命令,手写

创建Django项目(先切换到一个盘中D:)

django-admin startproject mysite

会在D盘中产生一个mysite文件夹,文件夹下含有mysite文件夹以及mange.py。

启动Django项目(先切换到mysite路径下):

python3 mange.py runserver 127.0.0.1:9090

创建应用

python3 mange.py startapp app01;

django必会三板斧

from django.shortcuts import render, HttpResponse, redirect
  • HttpResponse:返回字符串
  • render :返回HTML页面
  • redirect :重定向

拓展render传值

  • 第一种传值方式

djangoday02/app01/views

from django.shortcuts import render, HttpResponse, redirect

# Create your views here.
# 视图函数必须接收一个形参(request)
def ab_render(request):
    user_dict = {'username': 'junjie', 'age': 18}
    # 在myifrst.html中使用data获取到user_dict,键自定义。
    # 将user_dict传给myifrst页面,页面通过data拿到字典值
    return render(request, 'myifrst.html', {'data': user_dict})

djangoday02/templates

<body>
{{ data }}
</body>
  • 第二种传值方式

djangoday02/app01/views

from django.shortcuts import render, HttpResponse, redirect

# Create your views here.
# 视图函数必须接收一个形参(request)
def ab_render(request):
    user_dict = {'username': 'junjie', 'age': 18}
    """
    locals会将所在的名称空间中所有的名字全部传递给html页面
    将user_dict中所有的变量名传给html页面
    包括request
    """
    return render(request, 'myifrst.html', locals())

djangoday02/templates

<body>
{{ user_dict }}
</body>

静态文件配置

我们将HTML文件默认放在tmplates文件夹下,将网站所使用的静态文件默认放在static文件夹下。

什么是静态文件?

前端已经写好了,能够直接调用使用的文件。

  • 网站写好的JS文件
  • 网站写好的css文件
  • 网站用到的图片文件
  • 第三方前端框架
  • ...

拿来即可使用,不需要自己写的都可称为静态文件,django默认不会自动创建static文件,需要手动创建。

一般情况写会在static文件夹下做进一步划分。

--static
	--bottstrap-3.4.1
	--css
	--js
	--img
	--...(第三方框架)

在浏览器中输入url能看到对应的资源,是因为后端提前开设该资源的接口。

如果访问不到资源,说明后端没有开设该资源的接口。

页面请求成功但是页面的两个资源却请求失败。

image

那么为什么会显示后端路径不存在,请求不到呢?

后端没有开设静态文件访问接口,如何开设?

静态文件配置

templates

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="/static/bootstrap-3.4.1-dist/css/bootstrap.min.css">
    <script src="/static/bootstrap-3.4.1-dist/js/bootstrap.min.js"></script>
</head>
<body>
<h1 class="text-center">登录</h1>
</body>
</html>

djangoday02/settings.py

# 添加静态文件配置
STATICFILES_DIRS = [
    os.path.join(BASE_DIR,'static')
]

此时:

image

后端将static文件夹下所有资源都暴露给外界。

djangoday02/settings.py

STATIC_URL = '/static/' # 类似令牌

# 静态文件配置
STATICFILES_DIRS = [
    os.path.join(BASE_DIR,'static')
]
"""
/static/bootstrap-3.4.1-dist/js/bootstrap.min.js
/static/:令牌
bootstrap-3.4.1-dist/js/bootstrap.min.js:令牌正确,从列表中从上往下依次查找
"""

image

重要:

image

静态文件动态解析STATIC_URL : {% load static %}

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    {% load static %}
    <link rel="stylesheet" href="{% static 'bootstrap-3.4.1-dist/css/bootstrap.min.css' %}">
    <script src="{% static 'bootstrap-3.4.1-dist/js/bootstrap.min.js' %}"></script>
  
</head>
<body>
<h1 class="text-center">登录</h1>
</body>
</html>

djangoday02/settings.py

STATIC_URL = '/ooo/' # 随意更改

# 静态文件配置
STATICFILES_DIRS = [
    os.path.join(BASE_DIR,'static')
]

image

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值