Django路由——实用入门
各位程序员朋友们,大家好!
本文将以浅显易懂的方式介绍Django 路由系统。本教程最终将实现三个路由:一个默认路由,显示经典的“Hello World”页面;第二个路由,每次页面刷新时显示一个随机数;最后一个路由,显示一张从互联网上随机抓取的图片。
感谢阅读!
- Django路由示例- 源代码(Github/MIT许可证)
- 提供了更多包含身份验证和基本模块的Django 示例
什么是 Django
Django是一个高级 Python Web 框架,它鼓励快速开发和简洁实用的设计。它由经验丰富的开发者构建,处理了 Web 开发中的许多繁琐工作,让您可以专注于编写应用程序,而无需重复造轮子。它是免费且开源的。
让我们开始编写 Django 代码吧!
检查 Python 版本 - 推荐版本为 Python 3
$ python --version
Python 3.8.4 <-- All good, we have a 3.x version
创建/激活虚拟环境 - 基于 Unix 的系统
$ virtualenv env
$ source env/bin/activate
Windows 系统的语法略有不同。
$ virtualenv env
$ .\env\Scripts\activate
安装 Django
$ pip install django
创建一个新的 Django 项目
$ mkdir my-django-sample
$ cd my-django-sample
在新目录中,我们将调用startproject子命令:
$ django-admin startproject config .
注意:请注意.命令的末尾。
设置数据库
$ python manage.py makemigrations
$ python manage.py migrate
启动应用程序
$ python manage.py runserver
$
$ # Access the web app in browser: http://127.0.0.1:8000/
此时我们应该能在浏览器中看到默认的 Django 页面:
创建一个新的 Django 应用程序
$ python manage.py startapp sample
添加一个简单的 Django 路由
让我们sample/views.py按照如下所示进行编辑:
def hello(request):
return HttpResponse("Hello Django")
配置 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
]
换句话说,默认路由由hello定义在 `.` 中的方法提供服务sample/views.py。访问根页面时,我们应该会看到一个简单的“Hello Word”消息:
新路线 - 动态内容
让我们创建一个显示随机数的新路线sample/views.py。
...
from random import random
...
def myrandom(request):
return HttpResponse("Random - " + str( random() ) )
Python核心库中调用的新方法random()会将结果转换为字符串并返回。浏览器输出应类似于这样:
新路线 - 随机图片
这条路径会从一个公共(且免费)服务中随机获取一张图片,并将返回的内容注入到浏览器响应中。为了实现这个目标,我们需要一个新的 Python 库requests来轻松地获取随机图片。
$ pip install requests
新路由的代码应该在以下位置定义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")
要在浏览器中看到效果,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),
]
以下是一个示例输出——随机选自公共服务:
感谢阅读!更多资源,请访问:
- 👉 更多Django 仪表盘- 精选索引
- 👉 Django 应用生成器- 第二代应用构建器



