【一】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是自带重启功能的,后端代码有改变他就会自动重启。