软件传统Web用户界面
swh.web的Python项目详细描述
SWH网络
此存储库保存软件传统Web应用程序的开发:
swh web api(https://archive.softwarehitage.org/api):允许通过http请求查询归档内容,并以json或yaml格式获取响应。
swh web browse(https://archive.softwareheritage.org/browse):图形界面,简化了存档中的导航。
有关如何使用这些组件的文档,以及它们的uri方案的详细信息 可以在文档文件夹中找到。生成的html文档可以阅读和浏览 请访问https://docs.softwareheritage.org/devel/swh-web/index.html" rel="nofollow">https://docs.softwareheritage.org/devel/swh web/index.html
技术细节
这些应用程序的功能是:
在后端启用了以下扩展的django web frameworkdjango web framework
前端的webpack可以实现更好的静态资产管理,包括:
如何构建和运行
要求
首先,您需要安装一个完整的SWH开发环境。
要运行后端,需要安装以下Python3模块:
- 美化组4
- django>;=1.11.0
- djangorestframework=3.4.0
- Django_Webpack_加载器
- Django_js_reverse
- 文件
- 文件魔法=0.3.0
- htmlmin
- lxml
- 分段
- 皮潘多克
- python dateutil
- 皮亚姆
- 请求
要编译前端资产,您需要安装nodejs>;=8.x和纱线。如果您使用的是Debian Stretch,则可以从Stretch Backports存储库中轻松安装最新的nodejs。
可以按照以下说明安装yarn软件包。
或者,您可以使用npm install yarn
安装yarn,并在运行make
时添加yarn=node_modules/yarn/bin/yarn
作为参数。
请注意,webpack生成的静态资产包不存储在git存储库中。按照下面的说明生成它们,以便能够运行Web应用程序的前端部分。
设定目标
下面是可以从swh web的根目录执行的可用make目标列表,以便在各种配置下构建和/或执行web应用程序:
运行django webpack dev server:使用webpack dev server编译和服务未优化(没有混合和死代码消除)的前端静态资产,并使用开发集运行django serverNGS。这是开发swh web时建议使用的目标,因为它允许在修改源文件时自动重新加载应用程序的后端和前端部分(.py,*.js,*.css,*.html)。
运行django webpack dev:使用webpack编译未优化的前端静态资产(无缩小、无死代码消除),并使用开发设置运行django服务器。当只想开发应用程序的后端时,这是推荐的目标。
运行django webpack prod:使用webpack编译优化的(带缩小和死代码消除)前端静态资产,并使用生产设置运行django服务器。这有助于在生产模式下测试应用程序(与django提供静态资产不同)。生产设置特别启用高级django缓存,您需要安装memcachedmemcached才能使用该功能。
运行django server dev:使用开发设置运行django server,但不通过webpack编译前端静态资产。
运行django server prod:使用生产设置运行django服务器,但不通过webpack编译前端静态资产。
运行gunicorn服务器:在agunicorn中运行具有生产设置的web应用程序工作程序,因为它们将处于实际的生产环境中。
一旦执行了其中一个目标,就可以通过将浏览器指向http://localhost:5004来执行web应用程序。
纱线目标
以下是仅执行前端静态资产编译(不执行Web服务器)的可用纱目标列表:
构建开发:编译未优化(没有混合和死代码消除)的前端静态资产,并将结果存储在
swh/web/static
文件夹中。构建:编译优化的(混合和死代码消除)前端静态资产,并将结果存储在
swh/web/static
文件夹中。
在执行swh web的debian打包之前,必须执行构建目标,以便包中包含专门用于生产环境的优化资产。
要执行这些目标,请发出以下命令:
$ yarn <target_name>