轻量级Django-第2章-无状态的Web应用

占位图片服务器

接收一个带有指定图片大小(颜色,文本等)的Url并生成该图片。

通过正则中的?P语法来捕获被命名的组,之后用[0-9]来匹配数字

试验:

>>> compile = re.compile('^image/(?P<width>[0-9]+)x(?P<height>[0-9]+)/$')
>>> str = 'image/12x21/'
>>> compile.search(str)
<_sre.SRE_Match object; span=(0, 12), match='image/12x21/'>
>>> compile.search(str).groupdict()
{'width': '12', 'height': '21'}

验证无误后将请求处理为图片,通过Pillow将图片绘制出来。

然后加入缓存

# 导入缓存
from django.core.cache import cache
# 获取缓存中的数据 返回数据或者None
cache.get(key)
# 设置缓存数据,最后一个数据表示存放时间 60 * 60 是一小时
cache.set(key, value, 60 * 60)

加入静态文件和模板设置

    INSTALLED_APPS=(
        'django.contrib.staticfiles',
    ),
    TEMPLATES=(
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': (os.path.join(BASE_DIR, 'templates'),),
        }
    ),
    STATICFILES_DIRS=(
        os.path.join(BASE_DIR, 'static'),
    ),
    STATIC_URL='/static/',

遇见问题导入reverse失败:

ImportError: cannot import name 'RemovedInDjango20Warning'

在博客https://blog.csdn.net/qq_38431572/article/details/78995447中找到解决方法:

改为from django.urls import reverse



Django 创建以来,各种各样的开源社区已经构建了很多Web 框架,比如JavaScript 社区创建的Angular.js 、Ember.js 和Backbone.js 之类面向前端的Web 框架,它们是现代Web 开发中的先驱。Django 从哪里入手来适应这些框架呢?我们如何将客户端MVC 框架整合成为当前的Django 基础架构? 本书讲述如何利用Django 强大的“自支持”功能体系。本书的目标是引导读者跨越认为Django 太繁重而无法进行快速应用开发的误区。从创建世界上最小的Django 应用到构建RESTful API ,本书将引导读者学习如何利用这种流行的Python Web 框架。 写这本书的目的 我们编写本书主要是出于对Django 的热爱。我们的社区是令人惊奇的,它有很多资源可以用来学习Django 和开发应用。尽管我们也喜欢包括官方的Django 文档在内的一些资源,但这仅仅是对Django 强大功能的过于关注,而非它的解耦设计。Django 是一个令人满意的框架,它带有很多用于构建Web 应用的通用程序。在本书中,我们要突出说明如何将这些组件进行分离和间接替换,并从中选出最适合创建应用的一些组件来。同样地,我们想要将Django 项目和应用的典型框架进行分解。我们的目标是使读者不再提出“我怎样用Django 完成我的X 工作”这样的问题,而是提出“Django 能帮我完成X 工作吗?如果不能,社区有可用的工具吗”这样的问题。 另外,我们想要回答的问题是利用大量客户端实时交互,以及与本地可移动应用匹配的组件构建更多应用时,将Django 放在网络的什么地方适用。作为框架,用户对Django 一无所知,这使得一些喜欢Django 的用户无法得到构建这种应用的指导。我们希望本书能够帮助解决这些问题,想看到Django 及其社区日益壮大,并在多年后大家也成为它的一员。 第1,世界上最小的Django 项目。创建轻便简单的网络应用是本书的核心思想。在这一,要创建一个可运行的单行文件“Hello World ”的Django 应用。 第2,无状态Web 应用。讲述占位符图像服务的创建方法。第2 将引导读者通过创建无状态网络应用来生成占位符图像的URL 。 第3,创建静态站点生成器。快速构建原型是一门有用的创建和辅助网络应用的技术。我们要通过创建静态网站生成器协助维护团队项目的方式来检验该技术的效果。 第4,构建REST API 。REST API 是创建丰富的、具有内容相关性的网络应用的重要部分。在这一我们利用Django 静态框架开始构建一个大比例的Scrum 板应用。 第5,使用Backbone.js 的客户端Django 。本继续讲述在第4 中用新构建的RESTful API 创建的Backbone.js 应用。介绍创建新Backbone 应用的每个组件以及如何用Django 同步该客户端框架。 第6,单页面Web 应用。单页面网络应用是一种能够创建丰富客户端网络应用的途径。在本,我们将回到简单的Backbone 应用中,不断使这个单页面应用更加健壮。 第7,实时Django 。这一讲述创建响应实时交互的网络应用,为用户提供及时满意的服务。为了继续完成先前两的项目,我们要将一个实时组件添加到使用网络插件和Tornado 的Scrum 板上,这是一个用Python 编写的异步网络库。 第8Django 和Tornado 通信。将强大的Django 与Tornado 的健壮特性相结合是创建可变、实时的Django 应用的重要标志。在本中,我们将通过集成Django 的通信能力扩展Tornado 服务器的功能,来建立一种既安全又可交互的联系。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值