发布于 2026-01-06 2 阅读
0

Django路由——实用入门

Django路由——实用入门

各位程序员朋友们,大家好!

本文将以浅显易懂的方式介绍Django 路由系统。本教程最终将实现三个路由:一个默认路由,显示经典的“Hello World”页面;第二个路由,每次页面刷新时显示一个随机数;最后一个路由,显示一张从互联网上随机抓取的图片。

感谢阅读!



什么是 Django

Django是一个高级 Python Web 框架,它鼓励快速开发和简洁实用的设计。它由经验丰富的开发者构建,处理了 Web 开发中的许多繁琐工作,让您可以专注于编写应用程序,而无需重复造轮子。它是免费且开源的。

  • Django官方网站
  • Django 文档- 推荐给每一位有志成为 Django 开发者的初学者

让我们开始编写 Django 代码吧!

检查 Python 版本 - 推荐版本为 Python 3

$ python --version
Python 3.8.4        <-- All good, we have a 3.x version
Enter fullscreen mode Exit fullscreen mode

创建/激活虚拟环境 - 基于 Unix 的系统

$ virtualenv env
$ source env/bin/activate  
Enter fullscreen mode Exit fullscreen mode

Windows 系统的语法略有不同。

$ virtualenv env
$ .\env\Scripts\activate
Enter fullscreen mode Exit fullscreen mode

安装 Django

$ pip install django
Enter fullscreen mode Exit fullscreen mode

创建一个新的 Django 项目

$ mkdir my-django-sample
$ cd my-django-sample
Enter fullscreen mode Exit fullscreen mode

在新目录中,我们将调用startproject子命令:

$ django-admin startproject config .
Enter fullscreen mode Exit fullscreen mode

注意:请注意.命令的末尾。

设置数据库

$ python manage.py makemigrations
$ python manage.py migrate
Enter fullscreen mode Exit fullscreen mode

启动应用程序

$ python manage.py runserver 
$
$ # Access the web app in browser: http://127.0.0.1:8000/
Enter fullscreen mode Exit fullscreen mode

此时我们应该能在浏览器中看到默认的 Django 页面:

Django - 默认项目页面。

创建一个新的 Django 应用程序

$ python manage.py startapp sample
Enter fullscreen mode Exit fullscreen mode

添加一个简单的 Django 路由

让我们sample/views.py按照如下所示进行编辑:

def hello(request): 
    return HttpResponse("Hello Django") 
Enter fullscreen mode Exit fullscreen mode

配置 Django 使用新路由 -config/urls.py按如下方式更新:

from django.contrib import admin
from django.urls  import path
from django.conf.urls import include, url   # <-- NEW
from sample.views import hello              # <-- NEW

urlpatterns = [
    path('admin/', admin.site.urls),
    url('', hello),                         # <-- NEW
]
Enter fullscreen mode Exit fullscreen mode

换句话说,默认路由由hello定义在 `.` 中的方法提供服务sample/views.py。访问根页面时,我们应该会看到一个简单的“Hello Word”消息:

Django路由 - 返回给用户的简单消息。


新路线 - 动态内容

让我们创建一个显示随机数的新路线sample/views.py

...
from random import random
...
def myrandom(request): 
    return HttpResponse("Random - " + str( random() ) ) 
Enter fullscreen mode Exit fullscreen mode

Python核心库中调用的新方法random()会将结果转换为字符串并返回。浏览器输出应类似于这样:

Django路由 - 返回给用户的随机数。


新路线 - 随机图片

这条路径会从一个公共(且免费)服务中随机获取一张图片,并将返回的内容注入到浏览器响应中。为了实现这个目标,我们需要一个新的 Python 库requests来轻松地获取随机图片。

$ pip install requests
Enter fullscreen mode Exit fullscreen mode

新路由的代码应该在以下位置定义sample/views.py

...
import requests
...
def randomimage(request):
    r = requests.get('http://thecatapi.com/api/images/get?format=src&type=png')
    return HttpResponse( r.content, content_type="image/png")
Enter fullscreen mode Exit fullscreen mode

要在浏览器中看到效果,routing configuration需要相应地更新。

# Contents of config/urls.py
...
from sample.views import hello, myrandom, randomimage # <-- Updated 
...
urlpatterns = [
    path('admin/'     , admin.site.urls),
    url('randomimage' , randomimage),                 # <-- New
    url('random'      , myrandom),
    url(''            , hello), 
]
Enter fullscreen mode Exit fullscreen mode

以下是一个示例输出——随机选自公共服务:

Django路由 - 返回给用户的随机数。


感谢阅读!更多资源,请访问:

文章来源:https://dev.to/sm0ke/django-routing-a-practical-introduction-2m6e