前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django实战-星座运势接口封装

Django实战-星座运势接口封装

作者头像
小团子
发布2019-09-11 16:54:06
8820
发布2019-09-11 16:54:06
举报
文章被收录于专栏:数据云团数据云团

Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。

通过用户自主添加应用后,需要实现各个应用的具体功能。在前一小节中,完成了天气应用的接口封装,在本小节中会采用 Django 的缓存机制,缩短小程序端的请求时间。

代码语言:javascript
复制
from django.core.cache import cache

用户每次请求一个页面,服务器都会执行以下操作:查询数据库,渲染模板,执行业务逻辑,最后生成用户可查看的页面。这会消耗大量的资源,当访问用户量非常大时,就要考虑这个问题了。

缓存就是为了防止重复计算,把那些消耗了大量资源的结果保存起来,下次访问时就不用再次计算了。

一、设置缓存

在 settings 中的 CACHES 中设置缓存,下面是几个可用的缓存选项:

① Memcached

Django目前原生支持的最快最有效的缓存系统。要使用Memcached,需要下载Memcached支持库,一般是python-memcached或者pylibmc。

然后设置BACKEND为django.core.cache.backends.memcached.MemcachedCache(使用python-memcached时)。

代码语言:javascript
复制
CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': '127.0.0.1:11211',
    }
}

② DB Cache

Django可以把缓存数据存储在数据库中。

代码语言:javascript
复制
CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
        'LOCATION': 'my_cache_table',
    }
}

③ Filesystem Cache

使用文件来存储缓存数据。

代码语言:javascript
复制
CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
        'LOCATION': '/var/tmp/django_cache',
    }
}

④ Local-memory Cache

Django默认使用的缓存系统,数据存储在本地内存中

代码语言:javascript
复制
CACHES = {
    'default': {
        "BACKEND": "django.core.cache.backends.locmem.LocMemCache",
        "LOCATION": "backend-cache",
    }
}

二、星座运势接口

通过 聚合API 的外部请求,将要查询的星座名称传入,即可得到相关信息

代码语言:javascript
复制
key = "638590d043a54639f3560b5381f5c4f0"
api = "http://web.juhe.cn:8080/constellation/getAll"
代码语言:javascript
复制
def constellation(cons_name):
    key = "638590d043a54639f3560b5381f5c4f0"
    api = "http://web.juhe.cn:8080/constellation/getAll"
    types = ("today", "tomorrow", "week", "month", "year")
    params = "consName=%s&type=%s&key=%s" % (cons_name, types[0], key)
    url = api + "?" + params
    print("星座运势" + url)
    response = requests.get(url=url)
    data = json.loads(response.text)
    print(data)
    return {
        "name": cons_name,
        "text": data
    }
代码语言:javascript
复制
if __name__ == "__main__":
    data = constellation("金牛座")

三、星座运势接口封装

四、路由

代码语言:javascript
复制
from django.urls import path

from .views import service

urlpatterns = [
    path("constellation", service.constellation),
]
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据云团 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档