编码员你好。
这篇文章是对Django路由系统的一个软性和实用的介绍。我们将在本教程中编写的样本,最后将实现三个路由:一个默认路由,显示一个经典的Hello World;第二个路由,在每次刷新页面时显示一个随机数字;最后一个路由将显示一个从互联网上提取的随机图片。
谢谢你的阅读!- 内容由App Generator提供。
- Django路由样本--源代码(Github/MIT License)。
- 更多的Django样本提供的认证、基本模块
什么是Django
Django是一个高水平的Python Web框架,它鼓励快速开发和简洁、务实的设计。它由经验丰富的开发人员构建,解决了Web开发的许多麻烦,因此你可以专注于编写你的应用程序,而不需要重新发明车轮。它是免费和开源的。
让我们来编写Django代码
检查Python版本--推荐版本为Python3
$ 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
]
换句话说,默认路由是由sample/views.py 中定义的hello 方法提供的。在访问根页面时,我们应该看到一个简单的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),
]
下面是一个输出样本--从公共服务中随机抽取。
谢谢你的阅读!欢迎在评论区提出AMA。



