Loading

django框架三板斧

【一】Django项目如何添加新功能

【1】添加URL映射

  • 在项目的urls.py中,通过导入相应的应用app的views
  • urlpatterns列表中添加对应的映射
from django.contrib import admin
from django.urls import path
from user import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('login/', views.login),
    path('register/', views.register),
    path('user_list/', views.user_list),
    path('edit_user/', views.edit_user),
    path('', views.login),
    path('del_user/',views.del_user)
]

【2】添加视图函数

  • 在对应的app的views.py文件下,创建视图函数
  • 在函数内书写想要的业务逻辑
from django.shortcuts import render, HttpResponse, redirect
from user import models
from django.contrib import messages


# Create your views here.

def login(requests):
    if requests.method == 'POST':
        # 获取用户数据
        username = requests.POST.get('username')
        password = requests.POST.get('password')
        user_obj = models.User.objects.filter(username=username)
        if not user_obj:
            messages.error(requests, f'用户{username}未注册')
            return redirect('/login/')
        if password != user_obj.first().password:
            messages.error(requests, '密码错误')
            return redirect('/login/')
        return redirect('/user_list/')
    return render(requests, 'login.html')

【二】三板斧

【1】HttpResponse

  • HttpResponse是Django自带的类,用于构建基本的HTTP响应
from django.shortcuts import render, HttpResponse


# Create your views here.
def test(requests):
    return HttpResponse('这是test页面')

【2】render

  • 主要是用于给浏览器返回一个页面
  • render(): 这个函数用于从给定的模板加载内容,并将其插入到 HTTP 响应中作为 HTML 内容发送给客户端。
from django.shortcuts import render, HttpResponse


# Create your views here.
def test(requests):
    return render(requests,'test.html')

【3】redirect

  • 这个方法适用于给页面重定向,括号内可以写其他网站的全称 也可以自己网站的后缀
  • redirect(): 该函数用于向用户返回一个 HTTP "Redirect" 响应,使浏览器跳转至指定的 URL。
  • 如下,我输入test,就会跳转到百度的页面
from django.shortcuts import render, HttpResponse,redirect


# Create your views here.
def test(requests):
    return redirect(to='https://www.baidu.com')

【4】注意事项

  • 这三板斧中,除了render是会自动导入的,其他两个在使用的时候要记得导入方法
  • django是自带重启功能的,后端代码有改变他就会自动重启。
posted @ 2024-03-24 17:10  HuangQiaoqi  阅读(7)  评论(0编辑  收藏  举报