ccnmtl django开发的粘贴模板

ccnmtldjango的Python项目详细描述


[![构建状态](https://travis-ci.org/ccnmtl/ccnmtldjango.svg?branch=master)(https://travis ci.org/ccnmtl/ccnmtldjango)
[![文档状态](https://readthedocs.org/projects/ccnmtldjango/badge/?版本=最新](https://ccnmtldjango.readthedocs.org/en/latest/?badge=latest)


功能性
和配置。


它为我们提供了StartProject没有提供的功能:

http://www.jasig.org/cas/deployments/columbia university)
默认情况下包括并配置,因此我们的应用程序可以使用e wind
用于自动验证。也就是说,任何有哥伦比亚大学(columbia uni)的人都会有一个账户。ccnmtl developer unis被自动设置为超级用户,
ccnmtl staff的组affil都被自动映射到staff。这些
对我们来说通常是有用的默认值。
*virtualenv和pip设置与源tarballs捆绑在一起,并且
可引导,`manage.py`的shebang集使用它。这个
基本上适合于我们的一步自动化部署和
包含方法。
*一个很好的生成文件,用于常见的构建、测试和运行任务
*尽可能使用轮包
*启用flatpages
*为dev/prod/staging划分设置
*apache/django.wsgi configured
*使用虚拟
环境为mod_wsgi设置的示例apache配置(一切都经过了优化,这样我们就可以将生成的apache配置文件符号链接到我们的产品中
服务器的`/etc/apache/sites enabled/`目录中,这样做很好)
*用于dev的媒体目录/prod/staging configured
*`raven` included
(https://github.com/getsentry/raven-python)和configured for our sentry
*raven configured to not run on south migrations
*`django minating`包含(i like`@render_to`)
*用于单元te的sqlite内存数据库sts
*south测试在`./manage.py测试`(它们中断)
*`django_compressor`添加并设置为在生产时压缩css
*`django_statsd`用于graphite集成
*`/stats/`页面连接到显示应用程序的基本流量统计已连接并准备就绪的索引视图
*包含jquery、主干和下划线
*包含基本模板
*启用django管理(并使用wind验证tlc)
*`httplib2`
*`requests`
*包含并启用标记
*数据库默认为postgresql
*默认启用事务中间件(因为数据损坏很糟糕)
*时区集
*i18n已关闭(很不幸,我们是单语的)。无可否认)
*枕头
*`psycopg2`
*一个很好的默认模板设计,具有用于多列布局的备用基本模板。
*`flake8`(http://pypi.python.org/pypi/flake8)默认安装
用于代码行
*基于twitter bootstrap3的布局
*`ldap3`
*"django华夫饼"包含用于功能翻转(https://github.com/jsocol/django华夫饼)
*"django jenkins"包含并为我们的jenkins实例设置(https://github.com/kmmbvnr/django jenkins)
*"django smoketest"包含、连接和示例"smoke.py"
//github.com/ccnmtl/django smoketest)
*`django extensions`包含用于执行各种操作,如使用
ipython、werkzeug调试器、kcachegrind配置文件等(https://github.com/django extensions/django extensions)
*`django impersonate`包含并配置为便于调试
*`collectstatic`已配置
*`django pagetree`及其'django pageblocks`和'django quizblock`
已安装并配置igured.
*`django registration`已安装并配置
*Google Analytics Ready to Go


要使用ccnmtldjango,您需要在计算机上安装Python 2.7+、Virtualenv、PIP和最新的设置工具。

创建一个新的虚拟环境,例如

$virtualenv ve


d依赖项(实际上,只是
粘贴脚本)。如果这给您带来了问题,最有可能的原因是您的一个或多个setuptools、pip或virtualenv库已经过时。因此,请先升级并重试。




$paster create--列出模板


>应该包括ccnmtldjango

>现在,要快速启动django项目,请执行

$paster create--template=ccnmtldjango myprojectname

`myprojectname'应该是python m模块名称(即,小写,
无标点符号等)。它将创建一个名为
`myprojectname'的目录,其中包含一个django项目。


paster仍然不使用文件权限,因此我们仍然需要手动设置一对:

$cd myprojectname
$chmod+x manage.py

通过
粘贴模板将随机字符串插入到代码中,因此与常规的django startproject相比,ccnmtldjango缺少的一点是
settings\u shared.py中的"secret_key"变量始终是相同的默认值。这显然不是一个好主意,所以请确保将其更改为项目特有的其他随机字符串。(理想情况下,将其放入未签入版本控制的
`local_settings.py`中)。


它包含一个virtualenv并且已经安装了在'requirements.txt'文件中指定的所有库(包括django本身)。"ve"目录
不应签入svn,因为它是生成的。如果您的应用程序需要
其他库,`requirements.txt`然后重新运行
`./bootstrap.py`.


请记住,使用virtualenv,不需要"激活"环境。相反,ve有一个包含
python可执行文件的"bin"目录。如果您使用它而不是系统python
可执行文件,它将使用该virtualenv中的库。

然后执行:


$createdb myprojectname


,并且它都被设置为使用:

$make migrate
$make collectstatic

将安装django为其常见应用程序(站点、
会话、管理、flatpages等)和h是否创建管理员用户(如果
需要)。如果您使用的是wind auth,您可能不需要
麻烦)。它还将从所有安装的应用程序中收集静态元素,并将它们放在正确的位置。是否要将它们签入到版本控制中,而不必在部署时处理它,或者将它们排除在vc之外,并在部署过程中添加一个"collectstatic"步骤,这真的取决于您自己。


测试应该是现成的:

$make test

也可以通过jenkins运行,并在
a`reports`目录中生成正确的报告(您将希望gitignore)。


$make jenkins


您的应用程序现在可以运行了:

$make run server

将在"http://localhost:8000/"上启动服务器。管理应用程序应该可以访问(通过用户帐户使用
"manage.py createsuperuser"创建UNT,或通过WIND创建到TLC用户(或在"settings\u shared.py"的"wind\u superuser\u mapper\u groups"列表中指定的用户)。
请继续并登录到"http://localhost:8000/admin/`

您可能需要在项目中创建自己的应用程序,等等。







为此,您可以指定测试类和方法,以及
这样的模块:

./manage.py test dmt.api.tests.test_views.notifytests.test_get

=-
在第一次签出现有ccnmtl模板时设置新签出

e project from
svn/git:

$make runserver<;ip address>;:<;port>;



----------
不同于标准django安装

显然,已经添加了一堆库等,并且存在关于虚拟人的事。还有一些与标准django项目(即"django-admin.py startproject"的结果)不同的地方,您应该知道。

常规django安装将有
一个包含所有设置的"settings.py"文件。django
部署到生产环境时,开发人员通常会复制该设置文件并进行更改。ccnmtldjango利用了这样一个事实,即
设置只是python代码,可以导入和重写。因此
我们有一个"settings\u shared.py",其中包含了大部分
设置。` settings.py`(应该用于开发)和
`settings\u production.py`然后从
`settings\u shared.py`导入所有内容。`然后,settings_production.py`还会覆盖在生产部署中应该不同的任何
设置
(通常是指向模板和媒体文件的路径)。默认情况下,"settings\u staging.py"

"transactionmiddleware"也启用了相同的功能。这意味着每个http
请求都会得到一个在请求结束时提交或回滚的事务。由于某些原因,默认的django设置会执行
"autocommit"样式的操作,其中每个数据库操作都在其自己的
事务中运行,独立于http请求。

需要注意的另一个大的区别是顶级的"templates"目录。标准django过程是在项目中的每个应用程序中都有一个模板目录
,其中包含
该应用程序的模板。ccnmtldjango具有顶级模板目录
,原因有两个。首先,由于paster只创建项目级目录,而不是应用程序目录,因此它是唯一一种包含默认的"base.html"、"admin/login.html"、"registration/login.html"等的
方法。我也喜欢
有一个项目级模板目录的方法,特别是对于
`base.html`模板。django允许多个模板目录,并且
以可预测的顺序搜索它们,因此您可以(而且可能
应该)仍然创建应用程序级模板目录,在项目级目录前面的"template\u dirs"中列出它们,并覆盖任何您想要的模板。n那些。

i18n是关闭的,因为我们很少做多语种的事情,如果不使用它,启用它会影响性能。如果你需要一个多语种的django站点,只需重新启用它并开始工作。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
安卓工作室组织。json。JSONException:类型为java。无法将lang.String转换为JSONObject   java将数据从Jenkins参数化构建传递到testng。运行时的xml   java关注使用所有者框架异步打开JDialog   Android java:broadcastReceiver上的蓝牙连接事件未触发   在java中同时处理写入和读取的文件io   javascript如何替换目标数组字符串并将其更改为用户输入字符串   如何终止或停止java小程序中的其他线程   如何通过SeleniumJava连接到putty以执行一组命令并在putty窗口中验证输出   java为什么空列表上的循环会挂起?   java当我单击run时,什么也没有发生   swing Java多监视器问题   proguard java模块版本不匹配   java在facebook sdk 4.0上获取可标记好友+   java Android Fragmens和滑动示例   java导入。VS代码中的jar库   存储在SQL表中的java下载/显示文件   java项目Euler(第14页):递归问题   java如何在springboot中跳过失败的bean以避免报告失败:771>>应用程序启动失败