视频加载失败

Django框架入门之小白必会三板斧

632 字
3 分钟
Django框架入门之小白必会三板斧

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

  • 启动django项目之后 如何添加更多的功能
  • 回想自己编写的web框架 如果要添加功能 就去urls.py和views.py

【1】添加URL映射#

  • 在项目的 urls.py 文件中,通过导入相应的应用(app)及其视图函数,并使用 path() 或 include() 函数来定义 URL 映射规则。
  • 例如,如果要在名为 “myapp” 的应用中添加一个用于显示博客文章列表的 URL,则可以在 urlpatterns 中添加如下配置
from django.urls import path
from . import views
urlpatterns = [
path('blog/', views.blog_list, name='blog_list'),
]
  • 这将把 “/blog/” 映射到 views.blog_list 视图函数。

【2】添加视图函数#

  • 然后,在对应的 “myapp/views.py” 文件中,创建视图函数以处理 HTTP 请求。
  • 例如,blog_list 可能如下实现:
from django.shortcuts import render
from .models import BlogPost
def blog_list(request):
posts = BlogPost.objects.all()
return render(request, 'myapp/blog_list.html', {'posts': posts})
  • 这里假设有一个名为 “BlogPost” 的模型,并有一个包含模板 blog_list.html 的对应 HTML 模板文件。

【二】三板斧(返回HTTP响应、渲染HTML和重定向)#

【1】HttpResponse#

  • HttpResponse: 这是 Django 自带的类,用于构建基本的 HTTP 响应。
  • 例如,当需要返回纯文本或 JSON 数据时,可以这样创建响应:
from django.http import HttpResponse
from django.utils import json
def some_view(request):
data = {"key": "value"}
response = HttpResponse(json.dumps(data), content_type="application/json")
return response

【2】render#

  • 主要用于返回html文件 并且支持模板语法(django自己写的)
  • render(): 这个函数用于从给定的模板加载内容,并将其插入到 HTTP 响应中作为 HTML 内容发送给客户端。
  • 例如,在上面的 blog_list 视图中,我们使用了它来返回带有博客文章列表的 HTML:
from django.shortcuts import render
def blog_list(request):
posts = BlogPost.objects.all()
context = {'posts': posts}
return render(request, 'myapp/blog_list.html', context)

【3】redirect#

  • 主要用于重定向 括号内可以写其他网站的全称 也可以自己网站的后缀
  • redirect(): 该函数用于向用户返回一个 HTTP “Redirect” 响应,使浏览器跳转至指定的 URL。
  • 例如,点击博客文章详情页链接时,可能用到如下代码:
from django.shortcuts import redirect
from .models import BlogPost
def blog_detail(request, post_id):
try:
post = BlogPost.objects.get(pk=post_id)
except BlogPost.DoesNotExist:
return HttpResponse("Post not found", status=404)
# 处理完逻辑后,将用户重定向至文章详情页
return redirect('myapp:blog_post_detail', pk=post.id)
  • 在这个例子中,‘myapp’ 是在 urls.py 中定义的详细文章详情页面的 URL 名称,pk=post.id 表示要传递的文章 ID 参数。

【补充】django自带重启功能#

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

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
Django框架入门之小白必会三板斧
https://firefly.cuteleaf.cn/posts/framework/python/django/base/50django框架入门之小白必会三板斧/
作者
Dream
发布于
2023-07-15
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
Dream
Hello, I'm Dream.
公告
欢迎来到我的博客!爱学习爱进步。
分类
标签
最新动态
站点统计
文章
300
分类
5
标签
26
总字数
640,882
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
Vercel
博客版本
Firefly v6.16.8
文章许可
CC BY-NC-SA 4.0
文章目录