【一】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
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
def test(requests):
return HttpResponse('这是test页面')
【2】render#
- 主要是用于给浏览器返回一个页面
render()
: 这个函数用于从给定的模板加载内容,并将其插入到 HTTP 响应中作为 HTML 内容发送给客户端。
- 如
from django.shortcuts import render, HttpResponse
def test(requests):
return render(requests,'test.html')
【3】redirect#
- 这个方法适用于给页面重定向,括号内可以写其他网站的全称 也可以自己网站的后缀
redirect()
: 该函数用于向用户返回一个 HTTP "Redirect" 响应,使浏览器跳转至指定的 URL。
- 如下,我输入test,就会跳转到百度的页面
from django.shortcuts import render, HttpResponse,redirect
def test(requests):
return redirect(to='https://www.baidu.com')
【4】注意事项#
- 这三板斧中,除了render是会自动导入的,其他两个在使用的时候要记得导入方法
- django是自带重启功能的,后端代码有改变他就会自动重启。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!