- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
通常,我为与之合作的后端开发人员创建静态html prototype/skeleton
。这有助于在实施网站之前发现UI / IA中的错误并进行昂贵的重写。
我想更进一步,并创建这些prototypes/skeletons in Django
。我所说的原型/骨架是指链接的静态页面,以后可以很容易地连接到后端。
我想获得一些suggestions/ideas
,以了解如何设置模板/链接,以便在实施阶段的稍后阶段可以轻松使用它们。
我想到的简短要求列表:
最佳答案
我想以一种更为传统的方式,UI设计人员和后端开发人员在开发范围的两端进行工作,并希望以一种客气的方式融合在中间的某个地方。如果您愿意编写几行代码,可以为开发人员设计整个应用程序体系结构,因为您有优势-您会立即关注用户,他们使用的数据以及开发人员。他们需要执行的互动。对于开发人员来说,这将消除很多猜测,而现在只需填补漏洞,连接点或您拥有什么。
您应该做的第一件事是聚在一起并设定一些共同点。通常,这包括在一开始就执行模块化。掌握所有主要功能,并将其分解为几个Django应用程序,这些应用程序将包装与应用程序提供的特定功能相关的模板,视图和模型三合会。越多越好,这里就适用,所以不要担心如果您拥有很多应用程序,因为您永远不希望拥有提供太多功能/承载太多组件的单个应用程序。通常,您从registration
,authentication
,profiles
(用户)之类的应用开始,然后逐步开展工作。例如,您可以将这三个文件塞入一个应用程序中,但最终会得到很多模板,很多视图,两个或三个模型,但是测试确实是一个真正的瓶颈。因此,将所有内容分解到这些应用程序存储区中,直到您感觉系统的每个部分都自然地落入了概念层面。如果您发现自己在考虑应放置的位置,或者您正在查看一个长达几页的模块,并想将其(models.py
,views.py
,test.py
)分解为具有许多内部模块的包装,则可能应该重构立即架构。永远记住,您在这里所做的努力是为了简化您的体系结构。
一旦完成,您实际上已经完成了一半的工作。 Django的优点在于URL和视图之间的耦合很松散。视图本身提供了应用程序行为并简化了表示。如果您可以正确地铺开主URL并添加视图以仅生产静态模板,那么您已经做了一些出色的工作。
这就是它的完成方式。您可以通过命名模式来抽象化URL及其映射到的视图,例如authentication:login
,authentication:logout
,registration:register
,registration:confirm
,registration:activate
等。这是将内部结构与所提供的所有行为联系在一起的方式,这些不应该随时可能更改。然后,您可以始终更改authentication:login
的URL模式,更改该模式映射到的视图,但是通过内部名称引用它,因此,例如,可以用刚好显示的视图替换刚刚搅动静态模板的视图而无需必须对您的代码进行任何其他修改。
因此,这是现实生活中的工作方式:
core
应用程序开始,该应用程序将承载一些项目特定的功能,例如基本模板和根/
视图。 /core/templates/core/base.html
,它将加载将在站点范围内使用的所有通用CSS / JS文件,它将定义页眉,内容和页脚节(模板块),并将使用上下文变量来处理页面元数据,例如标题,说明,关键字和漫游器。典型的“一个模板全部统治”,所有页面的结构/表示中将出现的位。 /core/temaplates/core/welcome.html
,它扩展了核心模板并显示“Hello world!”。在内容区域。 /core/urls.py
中:from django.conf.urls.defaults import *
from django.views.generic import TemplateView
urlpatterns = patterns('',
# Welcome
url(
r'^$', TemplateView.as_view(template_name='core/welcome.html'),
name='welcome'
),
)
/urls.py
中:from django.conf.urls.defaults import *
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(ur'^', include('core.urls', namespace='core')),
url(ur'^admin/doc/', include('django.contrib.admindocs.urls')),
url(ur'^admin/', include(admin.site.urls)),
)
http://localhost:8080/
,看到“Hello World!”,陶醉在温暖的模糊感觉中。 urlconf
中的名称空间。 /urls.py
保持干净,除了模式,名称和视图映射外。您的
/core/urls.py
可能类似于:
from django.conf.urls.defaults import *
from core import views
urlpatterns = patterns('',
# Welcome
url(
r'^$', views.Welcome.as_view(),
name='welcome'
),
)
/core/views.py
:
from django.core.views.generic import TemplateView
class WelcomeView(TemplateView):
template_name='core/welcome.html'
extra_context={
'page_title': 'Welcome!',
'page_keywords': 'relevant,page,keywords',
'page_description': 'Something equally relevant',
}
def get_context_data(self, **kwargs):
context = super(WelcomeView, self).get_context_data(**kwargs)
context.update(self.extra_context)
return context
关于django - Django中的前端原型(prototype)/骨架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5112490/
我对 Python-Django 和 web 开发还很陌生,我被困在这个使用 POST 创建新资源的特殊问题上。 我正在为 REST API 使用 Django REST 框架,我正在尝试创建一个新资
我已经使用 Django-storages 成功地将 Word 文档存储到 S3。 class Document(TitleSlugDescriptionModel, TimeStampedModel
我有 2 个关于模型代理的问题, 如何从模型对象创建代理对象? 如何从模型查询集创建代理查询集? 例如,假设我们定义了: from django.contrib.auth.models import
我想编写一个直接执行 HTTP 请求的单元测试(而不是使用 django.test.client.Client)。 如果您好奇为什么 - 那是因为我想测试我从 Django 应用程序公开的 Thrif
我为我的个人网站启动了一个 django 项目来学习 django。到目前为止,我已经将我的开发环境设置为我需要的一切,并遵循 this很棒的教程来创建一些基本的数据结构和模板。现在我想开始使用我之前
我已经阅读了很多关于如何在使用 Django 注册时添加额外字段的信息,例如 here 、 here 和 here 。代码片段是: forms.py(来自注册应用程序) class Registrat
我正在编写小型社交应用程序。功能之一是在网站标题中写入用户名。因此,例如,如果我登录并且我的名字是Oleg(用户名),那么我应该看到: Hello, Oleg | Click to edit prof
我有一个使用 Django 和 Django Rest 框架开发的应用程序。我想将 django-reversion 功能添加到我的应用程序中。 我已经尝试过http://django-reversi
我有一个简单的 HTML 表单,我没有使用 Django 表单,但现在我想添加一个选择。 选择最容易创建为 Django ChoiceField (与通过循环等手动创建选择相反),但是,如果没有在 D
我不明白为什么人们以两种方式编写外键,这样做的目的是什么?它们是相同还是不同? 我注意到有些人这样写: author = models.ForeignKey(Author, on_delete=mod
我想在我的 Django 应用程序中获取评论最多的十个帖子,但我做不到,因为我想不出合适的方法。 我目前正在使用 django 评论框架,并且我已经看到使用 aggregate or annotate
这对于 Django 1.2 仍然有效吗? Custom Filter in Django Admin on Django 1.3 or below 我已经尝试过,但管理类中的 list_filter
问题在于,当 django-compressor 编译为 .js 文件的 CoffeeScript 文件中引用 {{ STATIC_URL }} 时,它无法正确加载。 在我的 django 模板中,我
我正在尝试将一些字段从一个 django 模型移动到一个新模型。假设我有一个书籍模型: class Book(models.Model): title = models.CharField(max
我想在我的 Django 应用程序中获取评论最多的十个帖子,但我做不到,因为我想不出合适的方法。 我目前正在使用 django 评论框架,并且我已经看到使用 aggregate or annotate
目前我正在寻找在 Django 中实现访问控制。我已经阅读了有关内置权限的内容,但它并不关心每个对象的基础。例如,我想要“只有创建者可以删除自己的项目”之类的权限。所以我读到了 django-guar
嗨,我正在将我的 Django 模型的一个字段的值设置为其他模型的另一个字段的值。这个值应该是动态变化的。 这是我的第一个模型 class MainModel(AbstractBaseUser, Pe
我正在尝试为我的模型创建一个编辑表单。我没有使用模型表单,因为根据模型类型,用户可以使用不同的表单。 (例如,其中一个表单有 Tinymce 小部件,而另一个没有。) 有没有什么方法可以使用模型设置表
Django 模板中的搜索字段 如何在类似于此图像的 Django 模板中创建搜索字段 http://asciicasts.com/system/photos/1204/original/E354I0
根据 Django documentation ,如果 Django 安装激活了 AuthenticationMiddleware,HttpRequest 对象有一个“user”属性代表当前登录的用户
我是一名优秀的程序员,十分优秀!