Django基础教程(二十三)Django初步体验之Django的视图和函数:和Django的第一次“约会”日记:视图函数让我心跳加速!

哎呀,各位码农小伙伴,今天咱们来聊点刺激的——Django的视图和函数!别看这名字听起来像什么高深莫测的哲学概念,其实它就是咱们网站背后的“超级接线员”。想象一下,你走进一家咖啡馆(对,就是那种连Wi-Fi都要纠结半天的地方),视图函数就是那个吧台后头冲你微笑的咖啡师,你点单(发送请求),他忙活(处理逻辑),最后递给你一杯香喷喷的咖啡(返回响应)。今天我就带你体验一把和Django的“第一次亲密接触”,保证比刷短视频还有意思!

一、视图函数:Django的“灵魂画手”

先来说说这视图函数到底是个啥。简单来讲,它就是一段Python代码,专门负责处理你的网页请求。比如你在浏览器里输入http://127.0.0.1:8000/hello,Django就会屁颠屁颠去找对应的视图函数,然后这函数就开始它的表演:查数据库、算数据、渲染模板……最后给你返回一个漂亮的页面。

举个栗子🌰,假设你想在个人主页上秀一句“嘿,这是我的地盘!”,用视图函数实现起来简直不要太简单:

# 在views.py文件里写下你的第一个“大作”
from django.http import HttpResponse

def my_homepage(request):
    return HttpResponse("嘿,这是我的地盘!Django老铁稳!")

看出来没?就这么四行代码!request参数就像是你递给咖啡师的点菜单,而HttpResponse就是那杯热腾腾的咖啡。不过光有咖啡师还不行,咱们得告诉客人吧台在哪儿对吧?这就需要配置URL了!

二、URL配置:给视图函数“发门牌号”

Django的URL配置就像是大楼里的导航图,得让每个视图函数都有自己专属的“门牌号”。来,在urls.py文件里给你刚写的视图函数安排个位置:

from django.urls import path
from . import views  # 从当前目录导入views模块

urlpatterns = [
    path('home/', views.my_homepage, name='home'),
]

这时候你打开浏览器访问http://127.0.0.1:8000/home/,就能看到那句霸气侧漏的自我介绍啦!不过先别急着高兴——这充其量就是个静态标语,咱们的网站得能跟用户互动才行啊。

三、进阶玩法:让视图“动起来”

真正有意思的来了!假设你想做个个性化打招呼功能,根据用户输入的名字显示不同内容。这就需要视图函数能处理动态数据了:

def greet_user(request):
    # 从URL参数里获取名字,如果没传参数就用“小伙伴”
    name = request.GET.get('name', '小伙伴')
    return HttpResponse(f"<h1>嘿,{name}!欢迎来到我的魔法城堡!</h1>")

对应的URL配置也得升级一下:

urlpatterns = [
    path('greet/', views.greet_user, name='greet'),
]

现在访问http://127.0.0.1:8000/greet/?name=程序员,页面就会热情地喊出:“嘿,程序员!欢迎来到我的魔法城堡!” 如果不传参数,它就会乖巧地称呼“小伙伴”。是不是瞬间觉得你的网站有了灵魂?

四、模板渲染:给网页“穿衣服”

当然啦,总不能永远让用户看光秃秃的文字吧?是时候请出Django的模板系统给网页打扮打扮了。首先在项目里创建个templates文件夹,然后新建个welcome.html

<!DOCTYPE html>
<html>
<head>
    <title>个性化欢迎页面</title>
    <style>
        .welcome-box {
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            padding: 2rem;
            border-radius: 1rem;
            color: white;
            text-align: center;
            font-family: sans-serif;
        }
    </style>
</head>
<body>
    <div class="welcome-box">
        <h1>🎉 嘿,{{ name }}!</h1>
        <p>你是今天第{{ visit_count }}位幸运访客,免费咖啡券拿好!</p>
    </div>
</body>
</html>

视图函数也得相应升级,学会使用模板:

from django.shortcuts import render
import random

def fancy_welcome(request):
    name = request.GET.get('name', '旅行者')
    # 模拟访问次数
    visit_count = random.randint(100, 999)
    return render(request, 'welcome.html', {
        'name': name,
        'visit_count': visit_count
    })

瞧见没?render函数就像个魔法师,把Python变量namevisit_count变进了HTML模板里。现在再访问http://127.0.0.1:8000/welcome/?name=设计师,你就能看到一个带渐变背景、表情符号和随机访问统计的精致欢迎页面了!

五、实战:构建迷你博客首页

光说不练假把式,咱们来个综合案例——打造个迷你博客首页,展示文章列表:

# 首先定义个简单的文章数据结构
articles = [
    {'id': 1, 'title': 'Django入门秘籍', 'author': '码农小A'},
    {'id': 2, 'title': 'Python效率技巧', 'author': '程序媛大B'},
    {'id': 3, 'title': '前端与后端恋爱指南', 'author': '全栈老C'},
]

def blog_homepage(request):
    return render(request, 'blog.html', {'articles': articles})

模板文件blog.html

<!DOCTYPE html>
<html>
<head>
    <title>我的迷你博客</title>
    <style>
        .article-card {
            border: 1px solid #e0e0e0;
            padding: 1.5rem;
            margin: 1rem 0;
            border-radius: 0.5rem;
            transition: transform 0.2s;
        }
        .article-card:hover {
            transform: translateY(-3px);
            box-shadow: 0 4px 12px rgba(0,0,0,0.1);
        }
    </style>
</head>
<body>
    <h1>📚 我的技术随笔</h1>
    {% for article in articles %}
    <div class="article-card">
        <h2>{{ article.title }}</h2>
        <p>作者:{{ article.author }}</p>
        <a href="/article/{{ article.id }}/">阅读全文</a>
    </div>
    {% endfor %}
</body>
</html>

这个例子展示了如何使用for循环遍历文章列表,并且用CSS添加了悬停动效——这才像个现代网站嘛!

六、避坑指南:新手常踩的雷

  1. 忘记导入模块:经常有人忘了在urls.py里写from . import views,结果Django一脸懵圈找不到视图函数。
  2. URL路径写错:比如把path('home/')写成path('home'),少个斜杠可能就让你的页面404了。
  3. 模板放错位置:Django默认在templates文件夹找模板,如果你把它扔别处了,记得在设置里指定路径。
  4. 没处理空数据:就像前面的greet_user函数,一定要给request.GET.get()提供默认值,否则遇到没传参数的情况就可能报错。

七、总结:视图函数的无限可能

看到这里,你是不是已经对Django视图函数有了全新的认识?从最简单的返回文本,到处理用户输入,再到渲染精美模板——这些看似简单的功能,其实就是绝大多数Web应用的基石!

下次当你在刷知乎、看豆瓣的时候,不妨想想背后那些辛勤工作的视图函数们。它们就像一个个不知疲倦的小精灵,接收着成千上万的请求,忙碌地处理数据,最后把精美的网页呈现在你面前。

最重要的是记住这个核心公式:
接收request → 处理逻辑 → 返回response

掌握了这个基本套路,你就能用Django打造出各种炫酷的功能了。啥用户登录、数据可视化、实时聊天……统统不在话下!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

值引力

持续创作,多谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值