六合平台网站

Django企业开发实战:高效Python Web框架指南
12推荐 收藏
25。1K阅读
图灵原创

Django企业开发实战:高效Python Web框架指南

胡阳 (作者)
上市销售
专享福利:腾讯云代金券

购买本书后,通过封底的刮刮卡密码,可以获得价值100元的腾讯云代金券
(满125元减100元),它可用于购买腾讯云所有预付费产品,领取规则、指引详见:
http://cloud.tencent.com/act/turing。
本书以从零开发一个博客系统为例,介绍Django在日常工作中的应用。
本书共分为四部分。第一部分介绍编码之前的准备工作,包括需求分析、Web开发基础以及选型时Demo的练习。第二部分开始正式实现需求,介绍了环境配置、编码规范以及合理的项目结构划分。通过对Django各部分(Model、Form、admin、View)的介绍和使用,完成了一个基础的博客系统。第三部分在前面的基础上介绍Django第三方插件的使用,通过引入这些插件进一步增强我们的系统。最后一部分也是正式工作中必不可少的部分,包含调试代码、优化系统、压力测试以及自动化等内容。
本书适合Python Web开发人员阅读。

收藏本书能做什么?

有情况的时候会收到通知,比如电子书发布等。

纸质书
¥78.21 ¥99.00

其他购买方式?

出版信息

  • 书  名Django企业开发实战:高效Python Web框架指南
  • 系列书名图灵原创
  • 执行编辑关于本书的内容有任何问题,请联系 王军花
  • 出版日期2019-01-25
  • 书  号978-7-115-50689-4
  • 定  价99.00 元
  • 页  数372
  • 印刷方式单色
  • 开  本16开
  • 出版状态上市销售

所属分类

同系列书

  • Linux就是这个范儿

    赵鑫磊   Jie Zhang(张洁)  

    本书内容源自淘宝技术大学的培训实战。由来自阿里巴巴集团的资深Linux系统专家赵鑫磊和同样来自阿里巴巴集团的支...

  • Go语言编程

    本书以介绍Go语言特性为主,示例则尽量采用作者开发团队平常的实践,内容涉及内存管理(堆和栈)、错误处理、OOP...

  • 一个64位操作系统的设计与实现

    田宇  

    六合平台网站本书讲述了一个64位多核操作系统的自制过程。此操作系统自制过程是先从虚拟平台构筑起一个基础框架,随后再将基础框。。。

  • 翻译漫谈——怎样翻译更地道

    余晟  

    翻译是一门非常强调实践并依赖练习的手艺活,这本书是作者从翻译“票友”出发,走“野路”逐渐成长为翻译“熟手”的经...

  • 六合平台网站Python 3网络爬虫开发实战

    六合平台网站本书介绍了如何利用Python 3开发网络爬虫,书中首先介绍了环境配置和基础知识,然后讨论了urllib、re...

本书特色

通过从零开发到部署完整案例,介绍Python Web框架Django在企业中的应用
资深开发工程师the5fire多年开发经验总结
以博客系统为原型,教你以真实的视角搭建自己的生产环境

胡阳的书要出版了,实在可喜可贺。他一直都有写博客的习惯,回想当年并肩奋战的时候,我有一次无意间通过搜索引擎跳到了the5fire的域名,备感亲切。终于,点点滴滴拾笔不辍,多年涓涓细流汇成大海,胡阳将多年耕耘在Django的经验写成了这本书。书里通过一个个鲜活的例子,夹杂着他对工程化、项目管理的理解,讲述了使用Django的方方面面。我强烈建议希望快速上手Django的同学参考学习。
作为一个持续奋斗在一线的工程师,我是从Django 0.97开始学习的,然后持续学习到1.4版本。虽然我早已改投他家,不再关注Django社区,但是它给我打上了深刻的烙印,让我明白什么是框架,如何跟框架相处,乃至如何自己写框架(虽然我强烈建议不要重复造轮子)。有一次,我新加入一个团队,要在很短的时间内用Yii完成一个后台管理系统,那是我第一次接触PHP,在两眼一抹黑的情况下,我汲取了Django Admin的设计灵感(主要是ORM和URL的相互表达),很快完成了业务功能,也受到了后续接手维护工作的同事好评。Django的设计理念很值得称道回味,朴实无华,但又贴心实用,如URL反向解析解藕模型与URL的映射,胖模型避免业务逻辑的泄漏,模板恪守程序员与设计师的职责划分,不一而足。希望大家能在胡阳的书中体会到这些设计,并能从设计的出发点体会优缺取舍的乐趣。
——尹吉峰,贝壳找房系统架构师

胡阳有多年一线Django开发经验,我很早就建议他写一本实战类的图书,现在很高兴看到它要面世了。本书填补了国内Django实战书的空白,书中既有细节也有架构,但尤为可贵的是其中包含了作者在需求分析、技术选型等方面的理解和观点,这让我产生共鸣的同时也受益良多。
——董伟明,豆瓣高级产品开发工程师

国内关于Python Web/Django开发的书比较少,能称为好书的更少。而来自the5fire(胡阳)的这本书则弥补了这个空缺。作者将他若干年经验以及业界最为普及的东西整合进了这本书,让读者在初学时就能获得干净、有效、新鲜的知识。相信我,如果你能认认真真将这本书读完,敲好书上给出的代码,虽不敢说你能成为一个优秀的开发者,但是肯定会给自己打下一个非常坚实的基础。简而言之,这本书强烈推荐!
——Manjusaka(李者璈),PyCon China 2018组织者

目录

序一 阅读
序二 阅读
前言 阅读
第一部分 初入江湖
第1章 需求
第2章 框架基础和技术选型 阅读
第3章 Django小试牛刀
第二部分 正式开发
第4章 进入开发
第5章 奠定项目基石:Model
第6章 开发管理后台
第7章 开发面向用户的界面
第8章 引入前端样式框架Bootstrap
第9章 完成整个博客系统
第三部分 第三方插件的使用
第10章 使用第三方插件增强管理后台
第11章 使用django-rest-framework
第四部分 上线前的准备及线上问题排查
第12章 调试和优化
第13章 配置MySQL和缓存
第14章 上线前的准备
第15章 升级到Django 2.0
第16章 最后总结
附录A 使用Fabric 2.0
附录B 使用uWSGI来启动Django程序
附录C Sentry安装和配置
附录D 评论验证码功能 
附录E 通过signal来解耦代码
附录F 实现文章置顶的几种方案
附录G 以腾讯云为例演示部署流程

作者介绍

胡阳,网名the5fire,前搜狐资深开发工程师,现任知乎资深开发工程师,负责部分业务的后端开发和团队管理。同时也是腾讯云最具价值专家(TVP)。
具有10年编程经验和写博客经验,喜欢通过代码来构建一些有价值的东西,也爱好记录和分享自己的经验。
2011年从Java转到Python后,便不可自拔,主要熟悉的Web框架是Django和Tornado。赞叹于Python的开发效率,欣赏Django完备的功能点对实际项目开发中程序员生产力的提升。

大家也喜欢

  • Python数据结构与算法分析(第2版)

    布拉德利·米勒   戴维·拉努姆   吕能   刁寿钧   译

    了解数据结构与算法是透彻理解计算机科学的前提。随着Python日益广泛的应用,Python程序员需要实现与传统...

  • Serverless架构应用开发:Python实现

    [印] 贾莱姆·拉杰·罗希特   安翔   译

    本书主要基于云架构的Python示例来讲解Serverless的概念。Serverless架构的核心思想是函数...

  • Python数据科学与机器学习:从入门到实践

    【美】弗兰克•凯恩(Frank Kane)   陈光欣   译

    本书介绍了使用Python进行数据分析和高效的机器学习,首先从一节Python速成课开始,然后回顾统计学和概率...

  • 深入理解Python特性

    [德]达恩·巴德尔(Dan Bader)   孙波翔   译

    本书致力于帮助Python开发人员挖掘这门语言及相关程序库的优秀特性,避免重复劳动,同时写出简洁、流畅、易读、。。。

  • 精通特征工程

    爱丽丝·郑   阿曼达·卡萨丽   陈光欣   译

    本书介绍大量特征工程技术,阐明特征工程的基本原则。主要内容包括:机器学习流程中 的基本概念,数值型数据的基础...

六合平台网站相关的文章

  • 威灵顿 3推荐

    六合平台网站为什么你应该在项目中使用pyenv+Pipenv:为项目设置超棒的本地开发工作流之秘籍

    译者评价: 软件开发者对工程环境、对开发工具的追求是不会止步的。随着开发要素的变迁,工具会不断演进、创新,来适应新的需求,解决面临的各类问题。开发者对新工具的挖掘/理解/采纳,也会反复循环。我们肯定得考虑切换工具的成本,但是也不能固步自封,因循守旧。这个就要自行评估和平衡了。…...

  • 张敏 11推荐

    Django 最佳学习路径 | 涵盖众多学习资源

    ![enter image description here][1] 学习编程的路上, 下面的场景你是否似曾相识? ———— 场景一 当初,零编程基础,想做个网站。 听说Python能做网站,而且很屌, 于是我… ...

  • An楠 推荐

    00 | 作者介绍

    我的经验,或许对你有用 —胡阳(the5fire) 。。。

  • An楠 推荐

    00 | 课程介绍

    课程目标: 了解正式环境中的Django/Web开发 学习真实项目开发中涉及到的技能 理解Web系统的原理 能够使用Django独立开发项目 。。。

  • An楠 推荐

    第1章 需求

    凡事得有个来由,就像物理中的能量守恒定律一样,各个模块(部门、组)之前相关作用、推动,让这整个公司的业务运作起来。不可能凭空产生能量。做项目开发也是一样,总得有一个需求过来,启动一个项目,或者推动整个项目的进展。这个需求可能是老板提出来的,也可能是产品提出来的,最终到开发组这里…。。。

  • An楠 1推荐

    01 | 需求

    这是产品经理跟开发人员交流的必不可少的东西,很多东西如果不落实到文档上,出了问题很难追溯。另外交流基本靠吼的方式也很容易丢失信息。所以无论是什么需求,能落实到文档上的一定要落实。即便是临时需求也要通过邮件的方式沟通。 接下来说博客开发的需求。 博客的需求说明 介绍 博…...

  • An楠 推荐

    02 | 需求分析/评审

    对于有经验的产品经理来说,在做任何需求的时候,都会计划的足够细致,落实到一个功能点。更好的是能够出原型稿。之后可以通过原型来对每一个功能点进行逐一核对。 对技术来说评审的目的有三个 一、明确所有的需求点,避免返工; 二、确认技术可行性,避免延期或者后面再修改需求; 三、确…...

  • An楠 推荐

    03 | 功能分析

    功能分析 上一节我们对需求进行了评审,经过对细节的沟通之后,产品对需求进行了修改和明确。 需求列表 用户端部分 网站需要对SEO友好,具体可参考搜索引擎站长白皮书,另外需要给搜索引擎提供xml格式的sitemap文件。 博客需要提供搜索功能,搜索范围限定在标题,分类,…。。。

  • An楠 推荐

    04 | 模块划分

    功能模块划分和技术点 从前面的几篇文章,我们已经知道了一个需求经过怎么样的产品跟技术之间的沟通或者PK之后,才能确定下来。当我们有了完整的需求之后,再接下来的一步就是做功能分析和技术选型,以及架构设计。 但是,很重要的一点是,需要再次提醒一下。一定要问清楚后期产品上的计划,…...

  • An楠 推荐

    第2章 技术选型

    框架基础和技术选型 上一章中我们对需求进行了评审和分析,最终得到了具体要开发的功能点,以及对模块进行了划分。现在我们需要做的是根据要开发的功能进行框架的选择。 针对不同的场景,选择不同的技术架构,所产生的开发成本和维护成本都不一样。特定场景下合适的技术架构能够让开发人员更快…。。。

  • An楠 推荐

    01 | 技术选型

    Python2。7 vs Python3。x 选择2和选择3是近几年来比较流行的一个“话题”,当然这个只是在网络某些论坛或者社区里。在真实的环境下没有这么多的纠结。选择目前应用最广泛的,周围人都在用,并且自己团队能够hold住的,就是最合适的选择。对于2和3的差异,其实写起代…。。。

  • An楠 推荐

    02-1 | WSGI02 (上)

    WSGI——Web框架基础 简介 WSGI,全称是Web Server Gateway Interface(Web服务网关接口)。 这是Python中的定义的一个网关协议,规定了Web Server如何跟应用程序进行交互。Web server可以理解为一个Web应用的容器…...

  • An楠 推荐

    六合平台网站02-2 | WSGI02(下)

    简单的WSGI application 理解了上面的代码之后,我们继续看看WSGI协议,也就是我们一开头介绍的。WSGI协议分为两部分,其中一部分是Web Server或者Gateway,就像上面的代码一样,监听在某个端口上,接受外部的请求。另外一部分是Web Applica…。。。

  • An楠 推荐

    03 | Flask

    Flask框架 [http://github。com/pallets/flask][1] 上节我们讲了两种提供Web服务的方式,分别是一:直接通过socket来处理http请求; 二:通过实现WSGI Application部分的协议。 基于这两种方式我们完全可以自己写…。。。

  • An楠 推荐

    04 | Tornado

    Tornado 框架 [http://github.com/tornadoweb/tornado][1] 印象 在工作中使用Tornado到现在也有5年了。相对于上一节的Flask,我对Tornado非常熟悉。但是如果要总结Tornado的特性的话,那也只是 高性能 。…...

  • An楠 推荐

    05 | Django

    六合平台网站Django框架 [http://www。djangoproject。com/][1] the5fire使用Django的时间比Tornado还久,在我从Java开发转到Python开发时直接是从Java的SSH(Struts、Spring、Hibernate)框架逃离到…。。。

  • An楠 推荐

    第3章 小试牛刀

    Django小试牛刀 前面的课程中,我们经过了需求分析,经过了技术选型,选择了我们匹配我们需求的框架。 在这一章,用我们选出来的框架简单做一个系统出来。在正式开发流程中,我们有可能会在选型的阶段来完成这部分内容。这是在我们对所有要用的框架都不熟悉的情况下。我们需要分别做一个…...

  • An楠 推荐

    01 | 如何阅读文档

    如何阅读Django文档 通过文字的方式来描述似乎不是件容易的事,我尽量通过文字表达清楚。 文档结构 Django是基于MVC模式的框架,虽然也被称为“MTV”的模式,但是大同小异。对我们来说,需要了解的是无论是MVC模式还是MTV模式,甚至是其他的什么模式,都是为了解耦…...

  • An楠 推荐

    02 | Model及Admin

    学员管理系统 这一节让我们来快速的过一下Django的各个模块,在上一节内容中,你可能了解了Django所提供的功能,这一节我们来切实体会一下。你最好打开你熟悉的IDE,一起写起来。 需求 一句话就能描述清楚的需求:提供一个学员管理系统,一个前台页面,展示现有学员,并供新…。。。

  • An楠 推荐

    03 | 前台开发

    学员管理系统- 前台 开发六合平台网站 有了上一节的Model和Admin的部分,我们接着来做一个简单的用户提交申请的表单页面。 首先在student/views。py文件中编写下面的代码: # -*- coding: utf-8 -*- from __future__ imp…。。。

  • An楠 推荐

    04 | 进阶-CBV和Middleware

    进阶部分 虽然是一个简单的Demo,但是有句老话叫:麻雀虽小五脏俱全,我们也得把常用的功能使用到。所以增加这一部分,包括:Class Base View, Middleware, TestCase这三个部分。 注意,如果你前面的例子没有跑起来,可以先不看这一节,先把前面的代…...

  • An楠 推荐

    05 | TestCase及总结

    TestCase 单元测试是实际开发中,很重要,但是经常被忽视的部分。原因主要是编写对于Web功能的测试所耗费的时间会高于你开发此功能的时间。因此对于需要快速开发、上线的业务来说,这个项目中关于单页测试的部分很少。 单元测试的主要目的是为了让你的代码更健壮,尤其是在进行重构…。。。

  • An楠 1推荐

    第4章 进入开发

    进入开发 这一部分我们将为正式开发做一些准备。比如环境配置,编码规范,以及一个Django项目的项目结构。有了这个基础之后,我们可以把任务进行划分,不同的成员开发不同层的内容。 。。。

  • An楠 推荐

    01 | 编码规范

    编码规范 这是一个老生常谈的问题,但是新手往往意识不到这个问题的重要程度。没有进行过团队合作的人,往往编码没什么风格。因为他没遇到这样的问题。或者他可能有自己的风格,但是对于团队来说,编写的代码应该有一致的风格,否则整个代码看起来会十分凌乱,不同成员不同的编码方式、习惯,让阅…...

  • An楠 推荐

    01-1-1 | 代码规范之Python之禅

    相关讲义请查看: 01 | 编码规范 ...

  • An楠 推荐

    01-2 | 编码规范

    相关讲义请查看: 01 | 编码规范 ...

  • An楠 1推荐

    01-1-2 | 代码规范之PEP8

    相关讲义请查看: 01 | 编码规范 ...

  • An楠 推荐

    02 | 虚拟环境

    虚拟环境 干净,整洁,无副作用的项目本地和线上的运行环境 几种方式: virtualenv project-env 项目目录即虚拟环境 python3.6 -m venv project-env 项目目录即虚拟环境 mkvirtualenv project-env 可以…...

  • An楠 推荐

    03 | 项目结构

    项目结构 原则 根据使用频率以及需要依赖的文件合理的规划项目文件结构,提高开发效率。 结构 project conf fabfile src requirements.txt setup.py others .gitignore 参考 [http://gi…...

  • An楠 推荐

    04-1 | Git版本控制基础

    Git版本控制 版本控制并不是仅限于源码管理这一领域,因为它的本质就是文件管理,因此你可以通过版块控制,来管理一切基于文件的变更。 在版本管理领域,有很多工具可以使用,拿我自己用来的来说,早期都是在使用svn来做源码管理,到了2011年之后,git盛行,就开始转向使用git…...

  • An楠 推荐

    04-2 | Git版本控制进阶

    六合平台网站git进阶 常用的配置及alias 可以通过git config -l 查看所有的配置,push default是默认配置了 修改已提交的commit gitblame审查代码 远端和本地 git merge/pull request 提交代码 无中间服务器如何提交pull…。。。

  • An楠 推荐

    04-2-1 | 常用的配置及alias

    相关讲义请查看: 04-2 | Git版本控制进阶 ...

  • An楠 推荐

    04-2-2 | 代码的修改和审查

    相关讲义请查看: 04-2 | Git版本控制进阶 ...

  • An楠 推荐

    04-2-3 | 如何参与协作?

    相关讲义请查看: 04-2 | Git版本控制进阶 ...

  • An楠 推荐

    第5章 奠定项目基石-Model

    概述 这一章我们先来创建一个github上的项目:typeidea,这是我们整个项目的名称,一个多人的博客系统。 在这一章我们会根据需求完成整个Model层的创建,理解Django中Model部分的知识点。 先实践,后总结。 ...

  • An楠 推荐

    六合平台网站01 | 创建项目结构

    创建项目及配置 我们先来回顾下之前分析的需求,那份最终整理完的需求文档,现在看了放的有点久了。不过中间经过的这些都是为接下来做铺垫,实际开发中不会有中间这么多的环节,因为这些都是预备知识,你不懂这些,应该是进不了正式的开发团队的。 好了,废话不多说,先来创建项目typeid…...

  • An楠 推荐

    02 | 编写Model层代码

    按照上节课的结构整理完项目之后,我们来创建Model层代码,不过在此之前,我们先来看下之前整理的Model需要的模型和字段: 文章: - id - 标题 - 作者 - 分类(多对一) - 标签(多对多) - 摘要 - 正文 - 状态 - 发布时间 分类: - id … ...

  • An楠 推荐

    02-1 | 创建blog模块

    按照上节课的结构整理完项目之后,我们来创建Model层代码,不过在此之前,我们先来看下之前整理的Model需要的模型和字段: 文章: - id - 标题 - 作者 - 分类(多对一) - 标签(多对多) - 摘要 - 正文 - 状态 - 发布时间 分类: - id … ...

  • An楠 推荐

    02-2 | 创建config模块

    按照上节课的结构整理完项目之后,我们来创建Model层代码,不过在此之前,我们先来看下之前整理的Model需要的模型和字段: 文章: - id - 标题 - 作者 - 分类(多对一) - 标签(多对多) - 摘要 - 正文 - 状态 - 发布时间 分类: - id … ...

  • An楠 推荐

    02-3 | 创建comment模块

    按照上节课的结构整理完项目之后,我们来创建Model层代码,不过在此之前,我们先来看下之前整理的Model需要的模型和字段: 文章: - id - 标题 - 作者 - 分类(多对一) - 标签(多对多) - 摘要 - 正文 - 状态 - 发布时间 分类: - id … 。。。

  • An楠 推荐

    02-4 | 创建Model 的回顾我总结

    按照上节课的结构整理完项目之后,我们来创建Model层代码,不过在此之前,我们先来看下之前整理的Model需要的模型和字段: 文章: - id - 标题 - 作者 - 分类(多对一) - 标签(多对多) - 摘要 - 正文 - 状态 - 发布时间 分类: - id … 。。。

  • An楠 推荐

    04 | Model层- QuerySet 总结

    六合平台网站Model层- QuerySet 总结 在Django的Model中,QuerySet是一个重要的概念,必须要了解的!我们在创建完Model以及建好数据库表之后,接下来需要做的就是创建Admin界面,还有开发前台页面。 上一节我们对Model中的字段做了详细的了解,也对OR…...

  • An楠 推荐

    03 | Model层Fields总结 (错误)

    Model-Field总结 在写完这些Model以及对应的字段之后,你可能会疑惑这些不同的字段分别是意思,以及为什么需要怎么写。 在进行详细的字段介绍之前,先来梳理这样的概念。Django的Model层给我提供了一套ORM(对象关系映射(Object Relational …...

  • An楠 推荐

    04-3-1 | 链式调用的接口

    本章课程讲义: Model层- QuerySet 总结 ...

  • An楠 推荐

    04-3-2 | 非链式调用的接口

    本章课程讲义: Model层- QuerySet 总结 。。。

  • An楠 推荐

    04-1-1 | 理解加载和链式调用

    本章课程讲义: Model层- QuerySet 总结 ...

  • An楠 1推荐

    04-1-2 | 常用的Queryset接口

    本章课程讲义: Model层- QuerySet 总结 。。。

  • An楠 推荐

    04-2 | Queryset使用之番外篇-刨源码

    本章课程讲义: Model层- QuerySet 总结 。。。

  • An楠 推荐

    04-4-2 | lookup语句

    本章课程讲义: Model层- QuerySet 总结 ...

  • An楠 推荐

    04-4-1 Queryset进阶接口

    六合平台网站本章课程讲义: Model层- QuerySet 总结 ...

  • An楠 推荐

    04-4-3 | 补充values和value_list

    六合平台网站本章课程讲义: Model层- QuerySet 总结 。。。

  • An楠 推荐

    04-5-1 | 常见Queryset性能问题及优化

    本章课程讲义: Model层- QuerySet 总结 ...

  • An楠 推荐

    04-5-2 | 理解层的概念

    本章课程讲义: Model层- QuerySet 总结 ...

  • An楠 推荐

    第6章 开发管理后台

    开发管理后台 这一章我们主要使用Django自带的admin来完成管理后台的开发。 admin属于Django的杀手锏了,对于内容管理系统来说,当你有了表,有了Model,就自动有了一套管理后台,还包括权限控制,这简直是不要太爽的操作。当然这得益于Django的诞生环境,也…...

  • An楠 推荐

    01 | 配置admin

    配置Admin页面 基于我们上节课编写完成的Model代码,我们来配置admin的页面。相对于重复编写Model中字段的枯燥,编写admin的代码会比较有趣,因为能直接看到对应的界面展示,也能直接修改页面展示。 废话不多说,我们开始编写admin的代码。 blog 首先…...

  • An楠 推荐

    02 | 定制site和admin list

    定制admin 上一节我们完成了基础的admin代码编写,已经得到了一个基本可用的内容管理系统,这一节我们来说下常用的定制行的操作。让大家有一个初步的认识,后面在实现需求时还会做更多的讲解。 框架为了达到更高的通用性,只会抽象出通用的逻辑。因此有些特性的东西需要我们自己来做…。。。

  • An楠 推荐

    03 | 刨源码弄清楚list_filter

    刨源码来看上节课的问题 实际项目开发中经常会遇到与期望不符的结果,因此排查问题是必备技能,对于Python来说,看源码也是相对容易的,这一节我们来通过源码看下上节课的问题所在。 。。。

  • An楠 推荐

    04 | 定制编辑页面和自定义字段

    编辑页面配置 save_on_top = True fields = ('title', 'category') fields = (('category', 'title'), 'content&#39…...

  • An楠 推荐

    05 | adminform和inlinemodel

    自定义form 还是只针对postadmin来增加form, 在blog目录下增加文件(模块)adminforms.py 这里要命名为adminforms而不是forms,只为了跟前台针对用户输入进行处理的form区分开来。里面编写代码,定义form。关于form的作用,我们…...

  • An楠 推荐

    06 | 重写form和admin部分方法

    重写form的clean_status方法 def clean_status(self): if self。cleaned_data['status']: return 1 else: return 3 重写admin的save_model方法 def …。。。

  • An楠 推荐

    07 | 抽象admin基类

    抽象基础Admin类 这一节我们来整理下admin的所有代码,把演示的代码去掉,按照正式的逻辑来完成代码。 之前我们在每一个admin上都重写了save方法,来做author——也就是当前作者进行处理,这一节我们来做一下抽象,避免重复的代码到处出现。 抽象author基类…...

  • An楠 推荐

    第7章 开发面向用户的界面

    开发面向用户的界面 这一节我们开始编写面向用户的界面,只会涉及简单的html结构,不会做太多的美化,这一节的目的就是,能够把我们在后台创建的数据,展示到前台即可。 从技术上来讲,这一节将涉及到Django中的Function View和Class Based View的使用…...

  • An楠 推荐

    01 | 搭建基础结构

    第一节 搭建基础结构&展示文章数据 在开发对用户的界面是,我们首先要分析的是,需要有多少种url存在——即多少个页面。然后再来编写view的代码,这样可以更好的处理重复的逻辑。 其次我们要分析的是,页面上需要呈现哪些数据。不同的数据意味着可能用到不同的model或者…...

  • An楠 推荐

    02 | 展示文章数据

    编写正式的views代码 这里我们先只处理文章相关的数据,其他数据暂时不处理。 配置模板数据 总结 这一节我们通过编写function views代码,把数据从数据库中取出,放到模板中进行展示,下一节我们来补充通用的页面配置,比如分类,标签,最新文章,最热文章等 参考…...

  • An楠 推荐

    六合平台网站03-1 | 分页配置

    本小节主要以代码演示为主,学习视频即可。 ...

  • An楠 推荐

    03-2 | 侧边栏和分类数据的处理

    配置页面通用数据 上节课我们把文章相关的数据做了简单处理,这一节我们来把通用的数据都拿出来塞到页面上。 分类信息 我们是把分类作为一个导航来展示给访客/读者的,在分类的设计上,我们也定义了is_nav的字段,作者可以确定哪些分类可以放到导航上。 我们先编写获取分类的代码…...

  • An楠 推荐

    03-3 | 配置通用部分

    本小节以看视频为主。 ...

  • An楠 推荐

    04-1 | Function View-vs-class-based-view

    六合平台网站升级至Class Based View 上一节我们完成了数据的展示,虽然整个流程有一些粗糙,但是数据是没问题了。接下来需要做的就就是使用Class Based View进行重构。 之前也讲到过,function view和class based view并没有技术上的高低之…。。。

  • An楠 推荐

    04-2 升级为Class-based-vew

    理解Class Based View 我们想从文档上来看下Django提供了多少种Class Based View,然后我们尝试来总结下需要这种CBV的场景,以及相对于functin view的优缺点。 View TemplateView DetailView ListV…。。。

  • An楠 推荐

    05 | 总结view处理request流程

    总结一个request到来之后两种view的处理流程 当django接受到一个request请求之后, 请求会先经过middleware的process request,然后会解析url,拿到对应的view(在urls.py中配置好的),调用view。middleware的流…...

  • An楠 推荐

    第8章 引入前端框架

    引入前端样式框架(Bootstrap) 这一章我们开始引入前端框架,来美化我们的界面。前面章节中我们通过编写后端代码来处理数据,数据之于网站,就相当于灵魂之于人类。而网站的前端就相当于人的形体、外貌。其中HTML是骨架,而css是皮肤,js就是肢体动作,可以用来展示数据,可以…。。。

  • An楠 推荐

    01 | Bootstrap使用入门

    Bootstrap做一个简单的页面布局 在正式去改项目代码之前,我们先做一个静态页面,根据我们之前的设计。这也是正式开发中常见的流程——有前端组/部门来做静态页面,后端来套页面。 介绍 我们先来了解下Bootstrap是什么。Bootstrap发展到现在,已经不能够用css…...

  • An楠 推荐

    02-1 | 美化系统页面

    美化页面 尽管使用bootstrap,我们可以很快的做出来一个页面。但是我们需要意识到的一点是,css、html和bootstrap的关系,就像是Python和Django的关系一样。 简单使用Bootstrap和Django,都没有问题。如果想要深入,那前提是必须要掌握好…...

  • An楠 推荐

    02-2 | 美化系统界面

    六合平台网站本小节以视频课为主要学习内容,无参考资料。 ...

  • An楠 推荐

    02-3 | 美化系统界面

    本小节以视频课为主要学习内容,无参考资料。 ...

  • An楠 推荐

    03 | 处理静态资源

    配置静态资源 在前面的章节我们,我们是把css直接放到html文件中编写,css的依赖直接使用的是网上的cdn资源。这节课我们需要把css拆分出来,成为单独的css文件,通过link标签加载。 拆分的原因 一般情况下来说,css样式直接写到html中没什么问题,样式展示上…...

  • An楠 推荐

    第9章 完善整个博客系统

    完成博客系统 上一章中我们完成了页面样式的配置,让我们之前简陋的页面变得漂亮了些。我们也通过修改默认的Django的模板也静态资源配置,让我们的博客系统可以支持多套模板。 从界面上看,到目前为止我们有了以下页面: 六合平台网站 分类列表页 标签列表页 文章正文页 这离我们的…...

  • An楠 推荐

    01-1 | 增加搜索

    本小节以视频课为主要学习内容,无参考资料。 。。。

  • An楠 推荐

    01-2 | 增加作者文章列表

    本小节以视频课为主要学习内容,无参考资料。 ...

  • An楠 推荐

    六合平台网站02 | 增加友链页面

    六合平台网站本小节以视频课为主要学习内容,无参考资料。 ...

  • An楠 推荐

    03-1 | 增加评论功能

    增加评论模块 评论提交的方式 js异步提交数据 当页提交 单独页面提交 优缺点 修改模型 post --> target 兼容多种页面 migrations的作用和意义 抽象出评论模块组件和mixin 作业 通过自定义tag实现评论模块的组件化 参…。。。

  • An楠 推荐

    六合平台网站03-2 | 增加评论功能(续)

    增加评论模块 评论提交的方式 js异步提交数据 当页提交 单独页面提交 优缺点 修改模型 post --> target 兼容多种页面 migrations的作用和意义 抽象出评论模块组件和mixin 作业 通过自定义tag实现评论模块的组件化 参…...

  • An楠 推荐

    03-3 | 抽取评论模板

    本小节以视频课为主要学习内容,无参考资料。 ...

  • An楠 推荐

    04-1 | 使用Markdown写博客

    配置markdown编写文章的支持 评论结果处理 增加是否使用markdown的选项 非markdown情况处理换行符 markdown使用配置 参考: [http://github。com/google/code-prettify/blob/master/doc…。。。

  • An楠 推荐

    04-2 | 优化Markdown代码高亮

    配置markdown编写文章的支持 评论结果处理 增加是否使用markdown的选项 非markdown情况处理换行符 markdown使用配置 参考: [http://github。com/google/code-prettify/blob/master/doc…。。。

  • An楠 推荐

    05-1 | 增加访问统计

    增加访问统计 统计的几种方式: 基于当次访问实时处理 基于当次访问延迟处理 - celery js 放到页面来统计或者img标签 分析nginx日志 增加文章访问统计 uv 判断的几种方式: redis/共享内存的方式:判断用户是否在多长时间内访问过 浏览器端记…。。。

  • An楠 推荐

    04-3 | 补充内容:ace.js库的使用

    本小节以视频课为主要学习内容,无参考资料。 。。。

  • An楠 推荐

    05-2 | 引入cache

    本小节以视频课为主要学习内容,无参考资料。 ...

  • An楠 推荐

    第10章 使用第三方插件增强管理后台

    使用xadmin增强管理后台 admin其实一直是Django的杀手锏,试想一下,你需要做一个内容管理系统,还需要带基础的权限控制,你用一个微型框架,可能需要花你一两天的时间,并且扩展性和可维护性基本上不会考虑。而Django在你建立好Model之后,提供了开箱即用的admi…...

  • An楠 推荐

    01 | xadmin介绍

    xadmin 介绍 xadmin是国人创建的一个开源项目,作者差沙(http://github.com/sshwsfc )。这个框架(django 插件)的口号是:Drop-in replacement of Django admin comes with lots of …...

  • An楠 推荐

    02-1 | 替换admin到xadmin

    替换admin为xadmin 从github安装: pip install git+http://github。com/sshwsfc/xadmin。 admin --> adminx 两个接口 get_queryset(self, request) --&g…。。。

  • An楠 推荐

    02-2 | 替换admin到xadmin(续)

    六合平台网站本小节以视频课为主要学习内容,无参考资料。 ...

  • An楠 推荐

    03 | 配置autocomplete-light

    使用autocomplete优化性能 之前也到过这一点,无论是django自带的admin还是xadmin,对于外键或者多对多字段的处理都比较粗暴,直接会加载到页面上,生成一个select标签,当关联数据过大时会有很大的问题。 试想一下,当你的外键或者多对多字段有几万条数据…...

  • An楠 推荐

    04-1 | 配置ckeditor

    引入django-ckeditor 对于内容型后台来说,输入内容是最高频的操作,因此需要能有一个更好的编辑器来替代我们之前简陋的Textarea。这类编辑器被称为富文本编辑器,或者也叫所见即所得编辑器。 同类的插件还有蚂蚁软件我们的需求,我们需要配置一套restful接口,输出所有的文章,功能跟web系统提供的类似,包含: 最新文章列表 分类列表 根据分类获取文章 标签列表 根据标签获取文章 都是只读的功能。这样的需求在实际的项目开发中很常见。当你开发了一套web…...

  • An楠 推荐

    03 | 配置detail接口中的分页和总结

    完成所有的api配置 区分list和detail 方法内部指定serializer_class def retrieve(self, request, *args, **kwargs): self.serializer_class = PostDetailSerializ…...

  • An楠 推荐

    第12章 优惠与调试

    调试和优化 调试和优化是无处不在的,并不是说一定是在某个阶段才需要做。有句话叫做:代码不是写出来的,而是调试出来的。这句话很有道理。 首先来说调试和优化的目的。调试是为了实现需求,或者为了优化程序执行时间而进行的不断的尝试,而优化的目的除了减少程序执行时间外,还有一点很重要…...

  • An楠 推荐

    六合平台网站01 | 调试手段:print /logger/pdb 大法

    常用的调试和调优手段 我们在前面章节中的代码编程过程中,其实也不断的在调试和优化代码,无论是优化queryset还是进行函数或者类的抽象。 一般情况下我们有这么集中调试的方法。 调试手段 print大法 这个是最简单,最直观的方法,新手上来就会用。通过print来打印…...

  • An楠 推荐

    02 | 常用的调优手段

    调优手段 上面是调试的方法,这里介绍调优的方法。 纯手工的timer 跟上面的print一样,这也是最为直白的探测程序执行时间的方法,再要执行函数的前后增加 start = time.time() 和print(time.time() - start)就可以获得到程序的执…...

  • An楠 推荐

    03 | debug-toolbar和silk的使用

    使用django-debug-toolbar优化 安装 pip install django-debug-toolbar 配置develop环境 INSTALLED_APPS += [ 'debug_toolbar', ] MIDDLEWARE +=…...

  • An楠 推荐

    第13章 配置Mysql & Cache

    配置MySQL和Cache 这一章我们来准备正式环境的配置,配置mysql和cache ...

  • An楠 推荐

    01 | 配置MySQL

    配置Mysql 这一节我们可以见证框架的好处,或者说ORM框架的好处。我们在做软件开发中,分层是十分常见的设计方案。分层的目的就是为了解耦,让两个本来完全相关的东西,通过中间加那么一层,从而隔离开。这样的好处就是相互变化后不会相互影响。 比如这里我们把sqlite换成mys…...

  • An楠 推荐

    02-1 | Cache介绍

    Cache 首先我们得了解下什么是cache, 为什么要使用cache,然后再去了解django中的cache的问题 什么是cache cache = {} def query(sql): return cursor.exe_command(sql) 作业 **写一…...

  • An楠 推荐

    02-2 | 配置Cache

    django中的cache配置 在django中可以配置多种cache源,就像是上节配置数据库一样。 redis,文件,mysql,内存都可以。 应用场景和缓存的粒度 不同的场景使用不同的缓存,配置不同的粒度。千万不要以为缓存一定能够优化你的访问,一定要先知道项目的业务…...

  • An楠 推荐

    第14章 上线前的准备

    上线前的准备 在上一章节中我们已经开始为上线做准备了,每次上线我们都需要准备一个清单,需要规划下部署结构,以及监控方案。 项目部署方案 首先我们需要搞明白的一件事就是,我们平时编写的代码是怎么着最终能为互联网用户提供服务的。这个过程其实就是软件的部署。 。。。

  • An楠 推荐

    01 | 如何部署你的项目

    你的代码如何为提供提供服务 也就是如何部署你的代码到线上,有几种方式,首先理解基础逻辑,打包,分发。 tar包 scp,最不济用QQ传(low。。。) gitlab --》 git pulll pypi docker 分发源 目标服务器 http代理 部署结构 。。。

  • An楠 推荐

    02-1 打包

    部署准备 上一节我们介绍了软件(或者我们称作源代码)分发的流程。这一节我们使用官方的pypi的方式进行打包,首先我们需要先配置下setup。py文件,这个是打包的分发的前提。 配置项目的setup。py coding:utf-8 from setuptools impor…。。。

  • An楠 推荐

    02-2 | pypi server

    配置pypi server 直接安装即可: pip install pypi-server 启动: pypi-server -p 8080 -P /opt/mypypi/。htaccess /opt/mypypi/packages 。htaccess: yum …。。。

  • An楠 推荐

    02-3 | 自动化部署

    编写自动部署脚本 fabric是个利器 首先,我们需要明确部署的逻辑是什么,然后才能用fabric自动处理。 创建虚拟环境 激活虚拟环境 安装项目包 上传supervisord.conf 启动supervisord ansible && salt …...

  • An楠 推荐

    02-4 | 完善fabfile

    本小节以视频课为主要学习内容,无参考资料。 ...

  • An楠 推荐

    03 | 监控准备

    监控准备 什么,线上挂了你竟然不知道?! sentry 日志 --> ELK --> Elasticsearch, Logstash, Kibana nginx日志分析 status code, 访问量,后端耗时 部署sentry sentry是用来及…...

  • An楠 推荐

    04 | 你的系统能抗多少量

    来,试试你的系统能抗多少量 在介绍工具之前我们先要了解下压测的目的,在介绍压测的目的之前我们先来考虑一个问题。那就是你的网站或者你的接口需要承受多大压力,或者说一天能承载多少用户的访问。 我们可以先从用户端计算一下,如果一个网站,每天有10万个活跃用户,每个用户每次会访问平…...

  • An楠 推荐

    第15章 升级到Python3

    迁移到Python3 [http://pythonclock.org/][1] 这是一个生态问题,我们私底下可以研究和使用最新的技术,但是生产环境上一定要稳定。 就像我在知乎上的回答(欢迎去评论)如何看待 Instagram 将所有Web 后端迁移到 Python 3.…...

  • An楠 推荐

    六合平台网站01 | Python2-vs-Python3

    Python2 vs Python3 总结几个主要的差别: 第三方库,有些库依然没有支持到Python3,比如说Supervisord 参考: Python3 wall这是决定是否迁移的一个很大的因素 内部库的变化: [Python3新特性][1] 基础编码的变化:…...

  • An楠 推荐

    02 | 开始迁移

    六合平台网站迁移到Python3 http://docs。python。org/3/howto/pyporting。html 。。。

  • An楠 推荐

    第16章 升级到Django2.0

    Django2。0 - Python2时代的逝去 。。。

  • An楠 推荐

    01 | 升级到Django2.0

    升级到Django2.0 - 多么轻松 相对于Django1.11,Django2.0的上层接口变化并没那么大,依然是Django一贯的各一个版本淘汰一些接口。 因为上节课我们已经升级到Python3了,因此对于升级Django2.0来说,只需要做些许改动即可。 Djan…...

  • An楠 推荐

    02 | 升级到Django2.0(续)

    升级到Django2.0 - 多么轻松 相对于Django1.11,Django2.0的上层接口变化并没那么大,依然是Django一贯的各一个版本淘汰一些接口。 因为上节课我们已经升级到Python3了,因此对于升级Django2.0来说,只需要做些许改动即可。 Djan…...

  • An楠 推荐

    第17章 最后总结

    我们通过一个脑图来梳理下我们这套课程下来一共涉及到哪些内容 ...

  • An楠 推荐

    01 | 最后但不是结束

    最后但并未结束 虽然是最后一节课,但这并不意味着这套课程结束了。课程的时间有限,不能把所有的问题都讲到,正所谓:一千个业务类型就有一千种Django的用法,以及周边库的使用。 所以作为本次课程的购买者,你可以根据你的实际使用场景提出想要更多了解哪方面内容。我会根据大家反馈,…。。。

  • An楠 推荐

    02 | 后续内容

    TODO:后续内容 根据读者反馈更新视频内容 部署到vps上 优化系统结构,代码 增加评论验证码 ckeditor增加代码支持 增加一套主题 去掉autocomplete light 在课程下留言,根据留言多少可以规划后面的内容 最后致谢! 欢迎评价 &&a…。。。

  • 李冰_ 3推荐

    胡阳:汗水铺就代码之路,三分天注定,七分靠打拼

    ![enter image description here][1] 胡阳前搜狐资深开发工程师,现任知乎资深开发工程师 2008年开始,他写博客11年了。 仅最近两年内,博客的访问量累计超过600万。 2017年,他发布了《Django企业开发实战》视频课,广受学员好评…...

  • An楠 推荐

    第2章 技术选型

    框架基础和技术选型 上一章中我们对需求进行了评审和分析,最终得到了具体要开发的功能点,以及对模块进行了划分。现在我们需要做的是根据要开发的功能进行框架的选择。 针对不同的场景,选择不同的技术架构,所产生的开发成本和维护成本都不一样。特定场景下合适的技术架构能够让开发人员更快…...

  • An楠 推荐

    01 | 技术选型

    Python2.7 vs Python3.x 选择2和选择3是近几年来比较流行的一个“话题”,当然这个只是在网络某些论坛或者社区里。在真实的环境下没有这么多的纠结。选择目前应用最广泛的,周围人都在用,并且自己团队能够hold住的,就是最合适的选择。对于2和3的差异,其实写起代…...

  • An楠 推荐

    六合平台网站02-1 | WSGI02 (上)

    WSGI——Web框架基础 简介 WSGI,全称是Web Server Gateway Interface(Web服务网关接口)。 这是Python中的定义的一个网关协议,规定了Web Server如何跟应用程序进行交互。Web server可以理解为一个Web应用的容器…。。。

  • An楠 推荐

    02-2 | WSGI02(下)

    简单的WSGI application 理解了上面的代码之后,我们继续看看WSGI协议,也就是我们一开头介绍的。WSGI协议分为两部分,其中一部分是Web Server或者Gateway,就像上面的代码一样,监听在某个端口上,接受外部的请求。另外一部分是Web Applica…...

  • An楠 推荐

    03 | Flask

    Flask框架 [http://github。com/pallets/flask][1] 上节我们讲了两种提供Web服务的方式,分别是一:直接通过socket来处理http请求; 二:通过实现WSGI Application部分的协议。 基于这两种方式我们完全可以自己写…。。。

  • An楠 推荐

    六合平台网站04 | Tornado

    六合平台网站Tornado 框架 [http://github.com/tornadoweb/tornado][1] 印象 在工作中使用Tornado到现在也有5年了。相对于上一节的Flask,我对Tornado非常熟悉。但是如果要总结Tornado的特性的话,那也只是 高性能 。…...

  • An楠 推荐

    05 | Django

    Django框架 [http://www.djangoproject.com/][1] the5fire使用Django的时间比Tornado还久,在我从Java开发转到Python开发时直接是从Java的SSH(Struts、Spring、Hibernate)框架逃离到…...

  • An楠 1推荐

    00 | 作者介绍

    我的经验,或许对你有用 —胡阳(the5fire) 。。。

  • An楠 推荐

    00 | 课程介绍

    六合平台网站课程目标: 了解正式环境中的Django/Web开发 学习真实项目开发中涉及到的技能 理解Web系统的原理 能够使用Django独立开发项目 ...

  • An楠 4推荐

    直播回顾 | Python web开发破局之道(内附PPT、录播视频、提问环节文字梳理)

    👉 相关课程推荐: 《Django企业开发实战》——视频版 原价399,现价359,立省40元 专属学习福利:独家首发Django知识脑图资料 超长课时:2499分钟 永久回看:2年有效期 独创的产品服务体系:不打扰,不建群,学分制,学习专区互学互助。 立即试听:[…...

  • An楠 推荐

    03 | Model层Fields总结

    Model-Field总结 在写完这些Model以及对应的字段之后,你可能会疑惑这些不同的字段分别是意思,以及为什么需要怎么写。 在进行详细的字段介绍之前,先来梳理这样的概念。Django的Model层给我提供了一套ORM(对象关系映射(Object Relational …...

  • 可以像国外的出版社一样,先出一个预览版嘛,让早期读者可以早点看到书,同时也可以根据反馈对书进行调整
    huangke  发表于 2018-11-20 10:20:54
    推荐
  • 请问这个有电子版吗
    Jenson、  发表于 2019-01-21 14:46:18
    推荐
  • 电子版 能早点出就早点出,我要买~~~话说你们图灵出版个东西也太慢了~
    林疯  发表于 2018-07-02 21:53:48
    推荐
  • 我想知道是django什么版本的,是django2吗?
    zerosail  发表于 2018-09-10 16:22:27
    推荐
    • 您好!本书基于Django 1.11,但是第15章介绍了如何升级到Django 2.0。

      王军花  发表于 2019-01-17 09:22:03
  • 挺慢的
    William葵花  发表于 2018-12-07 13:16:21
    推荐
  • 希望能出电子版
    nonono  发表于 2019-01-14 15:31:30
    推荐
    • 不太可能有电子版,有“图灵原创”标签的书大多数是不会出电子版的,搜索这个标签的书有电子版的寥寥无几,要么是纸书卖了好几年后才出的,要么是不太受欢迎的书。

      readisgood  发表于 2019-01-14 20:28:16
    • 六合平台网站@readisgood 怕盗版?

      威灵顿  发表于 2019-01-15 18:21:04
    • @readisgood 实际上,我觉得具体应用类的书籍,都应该电子化比较好,因为发展很快,实在太容易过时了。我书架上争取只留下经典的常青树作品。

      威灵顿  发表于 2019-01-15 18:22:38
    • @威灵顿 同意。纸质书太占地方了。。

      nonono  发表于 2019-01-16 09:57:22
  • 什么版本的django?
    xigaohu  发表于 2019-01-14 18:03:08
    推荐
    • 您好!本书基于Django 1.11,但是第15章介绍了如何升级到Django 2.0。

      王军花  发表于 2019-01-17 09:21:40
    • @王军花 这本书会不会有电子版?

      猥琐皮特  发表于 2019-04-13 17:15:18
  • 有电子版吗?年前能买吗?
    真无奈啊  发表于 2019-01-17 10:14:42
    推荐
  • 是不是要过年后啊,
    limyel  发表于 2019-01-19 00:35:02
    推荐
  • 随书下载的代码只有整体建构好后的代码,没有每章的代码啊……
    斑比站在你身旁  发表于 2019-03-17 14:30:16
    推荐
    • 这本书不是基于windows平台开发的,里面的开发步骤基本不能再2019年使用。真辣鸡,还是19年2月出版的……

      斑比站在你身旁  发表于 2019-03-17 15:45:30
    • @斑比站在你身旁

      git可以看到代码的提交日志
      你们公司python开发用Windows?你怕不是在逗我...

      prince5460  发表于 2019-03-27 10:04:48
    • 六合平台网站@斑比站在你身旁 Windows 一样开发 Django 啊,,除了一部分要做一些细微的修改。。

      Manjusaka  发表于 2019-04-19 18:40:13
    • @斑比站在你身旁 每章代码在分支里面,还有开发步骤怎么就不能在2019年使用了?素质堪忧

      huangke  发表于 2019-04-20 19:11:02
    • @huangke 用分支也不是不行,关键是被作者整的不同分支不在一条线,太乱了。

      laggard  发表于 2019-07-29 12:46:30
  • 本书最终产出的代码,建议从 Github 上下载:http://github.com/the5fire/typeidea
    部分代码在本书草稿的仓库中,可以查看:http://github.com/the5fire/django-practice-book
    huyang  发表于 2019-05-08 21:22:51
    推荐
  • 图灵要改下经营思路了,纸质书又贵又慢,这书已经过时了。电子书是主流,都是凭账号买的,不用怕盗版。
    学学  发表于 2019-05-31 19:21:59
    推荐
  • 六一节,纸质书没活动,营销方案不科学。
    学学  发表于 2019-05-31 19:55:23
    推荐
百分百平特一肖图解 挂牌平特报新图 看图解平特 直播六合采开奖记录 天线宝宝玄机料彩图 天线宝宝一肖平特图 百分百平特一肖图解 天线宝宝一肖平特图 开奖现场官方网站 手机查看开奖结果直播