用于django存储其他模型数据的双表模型。使用Word,您可以创建Django项目,并从数据库内容生成静态站点。

django-things的Python项目详细描述


#django things

django things是一个围绕为cms创建快速模型而设计的框架。django things将所有内容存储在两个表中的一个:things和values。这使得架构更改非常容易,因为架构并没有真正保存在数据库中。

如果您不使用"virtualenv",您可能应该使用它。

/>然后,使用以下命令激活环境:

source venv/bin/activate


>接下来,我们安装django things:


这将安装一些依赖项,如django本身。完成后,我们运行一个命令来构建基本项目:

create things project

这将在当前目录中构建一个django项目。它将在"conf"目录中生成"settings.py"和"url.py"文件。此外,还有一个需求目录,我们将使用它来安装更多的需求。我们可以使用以下命令安装附加要求:

pip install-r requirements/dev.txt


这将安装所有常用要求,以及用于本地调试的django调试工具栏。如果要在自己的服务器或像heroku这样的主机上进行生产安装,只需使用"pip install-r requirements.txt"即可获得生产依赖项。

当在本地或自己的服务器上运行时,可以在已创建的".env"文件中设置环境变量。您需要使用数据库位置和凭据修改下面的数据库设置:


database-url='postgres://localhost/django-things'

xt,我们运行初始同步来创建数据库表。这是一个在提示时添加超级用户的好时机。


:8000/](



\theming


django things网站可以创建自定义主题。主题位于项目根目录中的"themes"目录中。默认情况下,有一个名为"default_theme"的主题可以用作示例。

目录:**static**和**templates**

这些文件是在运行"collectStatic"时收集的

is template用于不是主页的所有页面。


两个模板文件都应扩展base.html,顶部应为:

{%extends'base.html'%}


基本模板可以使用以下块:

`title`:在文档头中呈现为HTML标题。

`head`:添加到文档头的末尾。你应该在这里添加字体、样式表和其他元元素。

`body`:这是模板的主要内容区域。它加载在文档正文。

`js`:在文档末尾加载。您应该在这里添加javascript文件。默认情况下包含jquery,因此不需要包含它。

如果需要重写,请重写块。

`description`:这是元描述。它可以在自定义应用程序中填充,也可以仅在homepage.html

`bootstrap\u css\u link`等模板中填充:默认情况下,这包括bootstrap css。您可以覆盖此选项以删除默认的引导css。

`jquery`:默认情况下包括jquery(当前为1.8.3)。可以使用不同版本的jquery重写此块。如果同时删除jquery,它将影响网站的某些功能。

默认值附带一个"articles"应用程序,如下所述。


\articles models.py


我们的类"articles"从things包继承"models.thing",并将一个元属性设置为代理模型:

from things import models
类文章(models.thing):

class meta:
proxy=true

thing类包含使用和eav类型体系结构自动映射字段的功能。它处理可以从"things.types"导入的不同字段类型。事物还具有一些基本属性(如字段),可以从"things.attrs"导入。


all"thing"模型默认包括这些字段:

`title`:title是一个简单的字符字段。

`slug`:slug是一个在所有应用程序中都是唯一的slug字段。

`creator`:creator是用户表的foregin键:当记录被创建时,这是一个自动的时间戳;当记录被更改时,这是一个自动的时间戳。实际上,我们不会将字段放在模型中。相反,我们将它们设置在字典中,在本例中称为"aritricle\u attributes"。在文章中,您将看到一些使用的默认属性,以及定义的自定义属性:

"name":"category",
"key":"category",
"description":"向{{model}}添加一个category。",
"datatype":types.type嫒text,
"required":false
},


单一性。内容有一个支持文件上载的所见即所得字段,author是一个文本字段,published是一个日期/时间字段,featured是一个布尔字段。category字段是定义的,设置为text而不是必需的。

"articles"类设置了一些属性,而不是普通字段,我们在字典中看到这些属性是attrs。下面是在一个Things类上使用的不同类型的属性。

`public_filter_out`:这是一个**字典**,它包含查询风格的过滤器,可以阻止某些内容公开显示。例如,对于"articles"类,我们为"published"设置了一个键,并将值设置为"0"。这意味着如果没有按日期/时间值发布,则该文章将无法公开访问。类似地,我们有一个值为"datetime.now().replace(second=0,microsecond=0)"的键"published"。这意味着将来发布的任何内容都不应公开访问。

`super_user_order`:这是一个**列表**,其中包含带有asc/desc顺序的attr。它控制物品的顺序重新显示给超级用户。对于文章,我们有一个顺序`['-published','-created']`,这意味着最新发布的内容后面跟着最新创建的内容。

`public':this is a**string**that control the order for public viewable content.对于文章,我们使用"-published-at",因此首先显示最新发布的项。

自动将我们的应用程序添加到django管理员,并将其包含在站点rss源、站点地图中,并将其url包含在站点中。



相反,我们会自动从things包继承表单。



我们不必添加此文件,因为它是从things包自动继承的。




\article views.py




我们向django管理员注册我们的管理类和模型,这是正常的:


class article admin(thingadmin):
list\u display=['name','link','content','author','published\u at']


admin.site.register(article,articleadmin)

list\u display通常是我们Django Things应用程序中的Ed。默认的列表显示是内容的标题和url,以及所有属性。如果您可以这样做,您只需使用"thingadmin"类注册您的模型,例如:


admin.site.register(article,thingadmin)




对于分配给这些url的视图,我们分别使用thinglistview和thingdetailview。

h包括显示列表和详细视图中的所有字段以及更新的时间戳。

[文章]。在这个目录中,我们可以添加以下模板:

`article\u detail.html`:这是详细视图的模板。article对象作为变量"object"传递到上下文中。我们可以用"object.title"引用title字段,也可以用名称的小写字母引用attr,比如"object.content"或"object.published"at`.

"article\u list.html":这个模板get的"object\u list"。一个常见的模式是定义一个"article\u list\u item.html",并使用该模板作为include来显示列表项。例如:

{%用于对象列表中的对象}
{%包括"articles/\u articles\u item.html"%}
{%endfor%}

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

推荐PyPI第三方库


热门话题
eclipse风格工具提示的java库?   java如何使用SAX获得xml标记的正确起始/结束位置?   java更改maven pom中可传递依赖项的版本。xml   java为什么使用TextView来更新int值并显示它给我带来了崩溃?   java如何在使用RecyclerView(Android Studio)时为ArrayList中的字母上标   java如何在Android编程中获取当前位置   java有没有办法在ByteBuddy代理之前对加载的类的方法调用advice()?   java禁用数据源自动配置Spring boot   xml中的java转义特殊字符   java corba实现在哪里   安卓 java后台服务正在进行中   Java中的JSON模式验证程序库   java数量增加了2个,而不是1个。弹簧靴   java创建自动化性能测试   java如何在do while循环中执行y/n选项?   使用Java解析HTML“style”属性   雅加达任何人都能解释这些话。演示层。业务层。java EE中的集成层与示例?   java如何使用oracle jdk 8安装tomcat native