50.Django框架

【一】Django之三板斧

1)render

  • 作用:返回HTML文件,并且支持模板语法

  • 语法:

    render(request,'模板文件名',locals())
    
# App.views
from django.shortcuts import render

def all_web(request):
    data = {'name': "ST1", 'age': 20}
    return render(request, 'all_WEB.html', locals())
# 再在指定网页通过输入{{data}}实现渲染

2)HttpResponse

  • 作用:

    • 字符串形式的数据渲染到页面上还是字符串

    • 字典格式的数据渲染到页面上只显示当前的第一个键

# App.views
from django.shortcuts import HttpResponse

def index_1(request):
    data = 'hello world'
    return HttpResponse(data)

def index_2(request):
    data = {'name': "ST1", 'age': 20}
    return HttpResponse(data)
# 再在Django.urls内正常创建连接地查看样式

3)redirect

  • 作用:重定向路由请求地址

  • 语法:

    redirect(to="/模板文件名/")
    # 左/:代表的是从根目录开始找路由
    
def redirect_1(request):
    return redirect(to="/all_WEB.html/")

4)django自带重启功能

  • 当识别到项目中代码有变化之后 隔段时间会自动重启 但是有时候较慢

【二】Django之静态文件(static)

1)静态文件配置说明

1.静态文件

  • 前端已经写好,能直接使用的文件
  • 如:网站写好的文件(js,css等)

2.模板文件

  • HTML文件默认都是放到templates文件下

3.资源文件

  • 网站所用到的静态文件默认放到static文件下

    • css:储存css样式
    • js:储存js动作
    • font:储存字体
    • plugins:储存插件
  • 若访问不到,则是后端没有开设相关的端口

2)静态文件配置

1.后端

# Django.setting
# 在STATIC_URL = 'static/'下插入
STATICFILES_DIRS  = [
    os.path.join(BASE_DIR, 'static')
]

2.前端

{% load static %}
<img src="{% static 'my_app/example.jpg' %}" alt="My image">

【三】Django之request对象

1)提交get请求

1.前端

  • action:传输地址,默认是当前路径地址
  • method:请求方式,默认get请求
from表单 get请求
<from action="" method="get">
</from>

2.后端

# App.views
def register(request):
    return render(request, "register.html")
# Django.urls正常添加地址

2)提交post请求

1.前端

  • 同get
from表单 post请求
<from action="" method="post">
</from>

2.后端

  • 同get

3.请求报错解决方法

  • csrf 验证失败 ---> 注释掉一个中间件 ---> 取消了 csrf 验证
# Django.settings
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',
]

3)request对象属性和方法

1.获取当前请求的方式

print(request.method)

2.从get、post请求获取数据

print(request.GET)
print(request.POST)

3.获取指定数据

  • get:获取单一键值时候的方式
  • getlist: 获取一个键对应多个值时候的方式
username = request.GET.get('username')
password = request.POST.get('password')
course = request.POST.getlist('course')
print("GET:", username, "PASS:", password, "course:", course)

4)post请求获取打开数据

# App.views
def post(request):
    print(request.method)
    # 只有post请求才会走的方式
    if request.method == "POST":
        return HttpResponse("ok")
    return render(request, "post.html")
# Django.urls正常添加地址
posted on 2024-06-26 21:09  晓雾-Mist  阅读(27)  评论(0)    收藏  举报