位于英国的网站设计和开发公司 Torchbox
近日宣布结束与
Drupal
结束长达十多年的合作关系。为此,他们已经失去了一批优质老客户,以及近60%的年收入。

5 个最受人喜爱的开源 Django 包

导读Django
围绕“可重用应用”的思想建立:自包含的包提供了可重复使用的特性。你可以将这些可重用应用组装起来,在加上适用于你的网站的特定代码,来搭建你自己的网站。Django
具有一个丰富多样的、由可供你使用的可重用应用组建起来的生态系统——PyPI
列出了超过 8000个 Django 应用——可你该如何知道哪些是最好的呢?

澳门新葡萄京所有网站 1

为了节省你的时间,我们总结了五个最受喜爱的 Django 应用。它们是:

  1. Cookiecutter: 建立 Django 网站的最佳方式。
  2. Whitenoise: 最棒的静态资源服务器。
  3. Django Rest Framework: 使用 Django 开发 REST API 的最佳方式。
  4. Wagtail: 基于 Django 的最佳内容管理系统(CMS)。
  5. django-allauth: 提供社交账户登录的最佳应用(如 Twitter, Facebook,
    GitHub 等)。

我们同样推荐你看看 Django Packages,这是一个可重用 Django
应用的目录。Django Packages 将 Django
应用组织成“表格”,你可以在功能相似的不同应用之间进行比较并做出选择。你可以查看每个包中提供的特性和使用统计情况。(比如:这是
REST 工具的表格,也许可以帮助你理解我们为何推荐 Django REST Framework。

为什么你应该相信我们?

我们使用 Django 的时间几乎比任何人都长。在 Django
发布之前,我们当中的两个人(Frank 和 Jacob)就在 Lawrence Journal-World
(Django 的发源地)工作(事实上,是他们两人推动了 Django
开源发布的进程)。我们在过去的八年当中运行着一个咨询公司,来建议公司怎样最好地应用
Django。

所以,我们见证了 Django
项目和社群的完整历史,我们见证了那些流行的软件包的兴起和没落。在我们三个之中,我们个人可能试用了
8000
个应用中至少一半以上,或者我们知道谁试用过这些。我们对如何使应用变得坚实可靠有着深刻的理解,并且我们对给予这些应用持久力量的来源也有着深入的了解。

建立 Django 网站的最佳方式:

建立一个新项目或应用总是有些痛苦。你可以用 Django 内建的

startproject

不过,如果你像我们一样,对如何做事比较挑剔。Cookiecutter
为你提供了一个快捷简单的方式来构建项目或易于重用的应用模板,从而解决了这个问题。一个简单的例子:键入

pip install cookiecutter

,然后在命令行中运行以下命令:

$ cookiecutter https://github.com/marcofucci/cookiecutter-simple-django

接下来你需要回答几个简单的问题,比如你的项目名称、目录、作者名字、E-Mail
和其他几个关于配置的小问题。这些能够帮你补充项目相关的细节。我们使用最最原始的
foo” 作为我们的目录名称。所以 cokkiecutter 在子目录 “foo
下建立了一个简单的 Django 项目。

如果你在 “foo
项目中闲逛,你会看见你刚刚选择的其它设置已通过模板,连同所需的子目录一同嵌入到文件当中。这个“模板”在我们刚刚在执行

cookiecutter

命令时输入的唯一一个参数 Github 仓库 URL 中定义。这个样例工程使用了一个
Github
远程仓库作为模板;不过你也可以使用本地的模板,这在建立非重用项目时非常有用。

我们认为 cookiecutter 是一个极棒的 Django 包,但是,事实上其实它在面对纯
Python 甚至非 Python
相关需求时也极为有用。你能够将所有文件以一种可重复的方式精确地摆放在任何位置上,使得
cookiecutter 成为了一个简化(DRY)工作流程的极佳工具。

最棒的静态资源服务器:Whitenoise

多年来,托管网站的静态资源——图片、Javascript、CSS——都是一件很痛苦的事情。Django
内建的 django.views.static.serve 视图,就像 Django
文章所述的那样,“在生产环境中不可靠,所以只应为开发环境的提供辅助功能。”但使用一个“真正的”
Web 服务器,如 NGINX 或者借助 CDN 来托管媒体资源,配置起来会比较困难。

Whitenoice
很简洁地解决了这个问题。它可以像在开发环境那样轻易地在生产环境中设置静态服务器,并且针对生产环境进行了加固和优化。它的设置方法极为简单:

  1. 确保你在使用 Django 的 contrib.staticfiles
    应用,并确认你在配置文件中正确设置了STATIC_ROOT 变量。
  2. 在wsgi.py文件中启用 Whitenoise:

    from django.core.wsgi import get_wsgi_applicationfrom whitenoise.django import DjangoWhiteNoiseapplication = get_wsgi_application()application = DjangoWhiteNoise(application)>
    

配置它真的就这么简单!对于大型应用,你可能想要使用一个专用的媒体服务器和/或一个
CDN,但对于大多数小型或中型 Django 网站,Whitenoise 已经足够强大。

如需查看更多关于 Whitenoise 的信息,请查看文档。

开发 REST API 的最佳工具:Django REST Framework

REST API 正在迅速成为现代 Web 应用的标准功能。 API 就是简单的使用 JSON
对话而不是 HTML,当然你可以只用 Django
做到这些。你可以制作自己的视图,设置合适的 Content-Type,然后返回 JSON
而不是渲染后的 HTML 响应。这是在像 Django Rest Framework(下称
DRF)这样的 API 框架发布之前,大多数人所做的。

如果你对 Django 的视图类很熟悉,你会觉得使用 DRF 构建 REST API
与使用它们很相似,不过 DRF 只针对特定 API 使用场景而设计。一般的 API
设置只需要一点代码,所以我们没有提供一份让你兴奋的示例代码,而是强调了一些可以让你生活的更舒适的
DRF 特性:

  1. 可自动预览的 API 可以使你的开发和人工测试轻而易举。你可以查看 DRF
    的示例代码。你可以查看 API 响应,并且不需要你做任何事就可以支持
    POST/PUT/DELETE 类型的操作。
  2. 便于集成各种认证方式,如 OAuth, Basic Auth, 或API Tokens。
  3. 内建请求速率限制。
  4. 当与 django-rest-swagger 组合使用时,API 文档几乎可以自动生成。
  5. 广泛的第三方库生态。

当然,你可以不依赖 DRF 来构建 API,但我们无法想象你不去使用 DRF
的原因。就算你不使用 DRF 的全部特性,使用一个成熟的视图库来构建你自己的
API 也会使你的 API
更加一致、完全,更能提高你的开发速度。如果你还没有开始使用 DRF,
你应该找点时间去体验一下。

基于 Django 的最佳 CMS:Wagtail

Wagtail 是当下 Django
CMS(内容管理系统)世界中最受人青睐的应用,并且它的热门有足够的理由。就像大多数的
CMS 一样,它具有极佳的灵活性,可以通过简单的 Django
模型来定义不同类型的页面及其内容。使用它,你可以从零开始在几个小时而不是几天之内来和建造一个基本可以运行的内容管理系统。举一个小例子,为你公司的员工定义一个员工页面类型可以像下面一样简单:

from wagtail.wagtailcore.models import Pagefrom wagtail.wagtailcore.fields import RichTextFieldfrom wagtail.wagtailadmin.edit_handlers import FieldPanel, MultiFieldPanelfrom wagtail.wagtailimages.edit_handlers import ImageChooserPanel class StaffPage(Page):    name = models.CharField(max_length=100)    hire_date = models.DateField()    bio = models.RichTextField()    email = models.EmailField()    headshot = models.ForeignKey('wagtailimages.Image', null=True, blank=True)     content_panels = Page.content_panels + [                                FieldPanel('name'),                                FieldPanel('hire_date'),                                FieldPanel('email'),                                FieldPanel('bio',classname="full"),                                ImageChoosePanel('headshot'),                                ] 

然而,Wagtail
真正出彩的地方在于它的灵活性及其易于使用的现代化管理页面。你可以控制不同类型的页面在哪网站的哪些区域可以访问,为页面添加复杂的附加逻辑,还天生就支持标准的适应/审批工作流。在大多数
CMS 系统中,你会在开发时在某些点上遇到困难。而使用 Wagtail
时,我们经过不懈努力找到了一个突破口,使得让我们轻易地开发出一套简洁稳定的系统,使得程序完全依照我们的想法运行。如果你对此感兴趣,我们写了一篇[深入理解
Wagtail][17。

提供社交账户登录的最佳工具:django-allauth

django-allauth 是一个能够解决你的注册和认证需求的、可重用的 Django
应用。无论你需要构建本地注册系统还是社交账户注册系统,django-allauth
都能够帮你做到。

这个应用支持多种认证体系,比如用户名或电子邮件。一旦用户注册成功,它还可以提供从无需认证到电子邮件认证的多种账户验证的策略。同时,它也支持多种社交账户和电子邮件账户。它还支持插拔式注册表单,可让用户在注册时回答一些附加问题。

django-allauth 支持多于 20 种认证提供者,包括 Facebook、Github、Google

Twitter。如果你发现了一个它不支持的社交网站,很有可能通过第三方插件提供该网站的接入支持。这个项目还支持自定义后端,可以支持自定义的认证方式,对每个有定制认证需求的人来说这都很棒。

django-allauth
易于配置,且有完善的文档。该项目通过了很多测试,所以你可以相信它的所有部件都会正常运作。

原文来自:

本文地址:

个最受人喜爱的开源 Django 包 导读 Django
围绕可重用应用的思想建立:自包含的包提供了可重复使用的特性。你可以将这些可重用应用组装…

澳门新葡萄京所有网站 2

Torchbox 解释称,之所以甘愿顶着如此大的损失放弃 Drupal
,是因为 Drupal 开发速度太慢,难以使用和维护,成本太高。2007年,Torchbox
开始使用 Drupal ,并迅速建立了英国最大的 Drupal
团队之一,开发了许多技术复杂且屡获殊荣的网站。可惜好景不长,随着发展,2011年的
Drupal 7 已经变成了压在他们身上的“重担”,后面的 Drupal 8
也并没有让情况变得更好,存在着积极维护的模块数量少、学习曲线陡峭、UI
复制、版本迭代慢等问题。

在网站中加入电子商务功能越来越重要,不管是出于时髦还是实用,本文介绍了22个国外最常用的电子商务系统,从简单的购物车,到完整的电子商务平台,到可以集成到第三方CMS系统的框架,到托管式电子商务服务,有收费的,也有免费的。

从前两年开始,Torchbox 开始为基于 Django 的开源 CMS Wagtail
贡献代码,并在此过程中发现 Wagtail 比 Drupal
更符合他们的需求。他们为八名全职的 Drupalistas
提供了再培训的机会,并同步开展 Wagtail 和 Django
项目,结果有7位开发者决定从 Drupal 转向 Wagtail 。

轻量级电子商务系统

澳门新葡萄京所有网站 3

如果你只想在网站中简单销售几样东西,部署一个完整的电子商务平台就小题大做了,下面的这些轻量级系统可以满足这个需求。

(文/开源中国)    

E-junkie

最适合销售可下载数字素材,虽然也可以用来销售有形商品,但需要注意处理好扣税,发运等事宜。

FatFreeCart

同样由 E-Junkie 团队开发,适合于使用 Paypal 和 Google Checkout
做结算的业务,只需将他们的代码放到你的网站,并修改产品信息。

Big Cartel

适合设计师和艺术家在网上销售他们的作品。

在 WordPress 博客中开店

以下产品适用于在你的 WordPress 博客中开一个小店。

WordPress e-Commerce plugin

WordPress 下最著名的电子商务插件,和 WordPress 完美结合。

eShop

WordPress
下的电子商务插件,包括众多有趣功能,比如统计,订单处理,可定制的邮件模板。

Shopp

并非免费,但很好用,同 WordPress 完美集成,有很好的模板标签文档。

WordPress MiniCart

WordPress
下的非常轻量的购物车插件,可以嵌入到帖子中,还可以用作捐款插件。

著名 CMS 系统下的购物车集成

以下电子商务产品可以集成到众多著名 CMS 系统中。

Drupal e-Commerce

Drupal 有两个专门开发的电子商务模块,Ubercart Drupal e-Commerce。

Ubercart
二者中用户最友好的一个,拥有一个动态社区和很多好功能。Drupal
e-Commerce
该 Drupal 模块可以在 Drupal
站点中创建电子商务应用。E-Commerce for Joomla

VirtueMart 是可以集成到 Joomla! 的一个开源电子商务平台,使用 Ajax 技术。

SilverStripe

SilverStrip 并不需要额外集成电子商务系统,它本身已经内置。

Django webshop with Satchmo

尽管 Django 更适合开发者而不是设计师,但你应该知道
Satchmo,这是一个可以同 Django 站点完美集成的购物车程序。

E-Commerce with Ruby On Rails

Spree 借助 Ruby On Rails 的强大功能,实现了非常出色的购物车,内置 Google
流量分析,支持超过50种结算方式。

开源电子商务平台

以下平台虽然相对复杂,且需要一定的编程基础,但它们是最佳电子商务方案。

Magento

Magento
应该算是最好的开源电子商务平台,拥有高级统计,客户组管理,众多结算接口,强大的管理界面等等,唯一的遗憾是它的主题机制有些复杂。

PrestaShop

PretsaShop 是一个专业的开源电子商务平台,拥有很多优秀的功能和管理界面。

ZenCart

由一个活跃的社区开发并维护的开源购物车,安装非常简单。

收费电子商务平台

如果你不愿在开源系统上花时间研究,以下收费电子商务系统值得一看。

Shopify

价格还算合理,可以试用,适合那些对技术不太在行的人使用。

Foxycart

和 Shopify
类似,可以帮助你处理电子商务的所有后台工作,几乎可以集成到任何 CMS
系统。

托管式电子商务服务

如果你不愿在技术上花费任何时间,以下托管式电子商务服务适合你。

CafePress!

如果你想在网上销售自己设计的 T
恤衫或咖啡杯,日历什么的,这个服务商可以帮你完成打印,发运一系列工作,你只需设计就是了。

Lulu

你可以在上面自助出版书籍。

CreateSpace

这是 Amazon 的一项服务,你可以在上面销售你的书,唱片或摄影作品。

DeviantArt

DeviantArt 是一个社会化网络社区,艺术家和设计师可以在这里卖自己的作品。

本文来源: