vanilla是django的一个框架,更高效,不过使用思路有点与众不同。
先看官方文档说明:http://django-vanilla-views.org/api/model-views
只有两种模式:base views ,model views
使用思路:
1.url层配置,as_views模式,跟viewlist,generic通用模式类似
urlpatterns = patterns('',
url(r'^$', views.JiraIssueView.as_view(), name='issue-list'), url(r'^trackTask/$', views.TrackTaskView.as_view(), name='track-task'), }
class SearchTrackTask(forms.Form):
app_name = forms.CharField(max_length=255, widget=forms.TextInput({'class': 'form-control', 'placeholder': '发布应用名称'})) app_version = forms.CharField(max_length=255, widget=forms.TextInput({'class': 'form-control', 'placeholder': '发布应用版本'}))
operater = forms.CharField(max_length=255, widget=forms.TextInput({'class': 'form-control', 'placeholder': '发布者'}))
2.views层写法,与前端交互,并返回数据
(1)这里跟普通的框架不同之处在于,content是程序里返回
(2)没有render,httpresponserender这类,也没有指定数据返回的页面。具体原因继续往下看
class TrackTaskView(ListView):
model = models.TrackTask form_class = forms.SearchTrackTask queryset = None lookup_field = 'title' paginate_by = 15 ''' 返回context信息 ''' def get_context_data(self, **kwargs): context = super(TrackTaskView, self).get_context_data(**kwargs) # add search form context['form'] = self.get_form() context['title'] = u'发布状态跟踪' context['introduction'] = u'包含信息:发布人,应用名称,应用版本,状态信息,状态更新时间。' # show maintenance notification. If it's empty, the notification will not be appeared in the page. context['notification'] = u'' # login partial and commons context['year'] = datetime.now().year return context ''' 查询数据返回 ''' def get_queryset(self): # support search try: app_name = self.request.GET['app_name'] app_version = self.request.GET['app_version'] operater = self.request.GET['operater'] except Exception as e: app_name = '' if app_name == '': return models.TrackTask.objects.filter(app_name=app_name).order_by('id') else: return models.TrackTask.objects.filter(app_version=app_version).order_by('id')
3.返回数据的页面格式class_list.html
tracktask_list.html
页页调用action
<li><a href="{% url 'track-task' %}" class="navbar-brand">发布状态跟踪 </a></li>
成品:
总结:更高效的编码,但使用方式思路有点异类,看了一个小时官方文档,才明白怎么使用
相关推荐
对于Django开发者来说,理解如何安装、配置和使用DjangoCMS Forms是非常重要的。首先,他们需要在自己的项目环境中安装这个库,通常通过运行`pip install djangocms-forms`命令实现。然后,在Django CMS的设置中配置...
`django-crispy-forms` 是一个流行的 Django 库,它为 Django 的表单处理提供了强大的布局和样式控制能力。这个库允许开发者以更优雅的方式组织和呈现表单,提高用户体验,同时减少模板代码的复杂性。在 `django-...
`django-dynamic-forms` 是一个基于 Python 的 Django 框架的开源库,主要用于创建和管理动态表单。这个库的版本是 0.3.2,可以从 Python 的官方软件包索引(PyPI)网站上获取。PyPI 是所有 Python 开发者共享和发布...
通过理解和使用`django-apollo-forms`,开发者可以提高Django项目中的表单处理效率,同时享受到Python生态带来的便利性和灵活性。对于需要处理复杂表单逻辑或与GraphQL服务集成的项目,这个库将是一个有价值的工具。
"资源全名:django-masked-forms-0.0.1.tar.gz"进一步重申了文件的完整名称,包括项目名和版本号,以及其是使用tar.gz压缩的。 标签"django"、"python"、"后端"、"开发语言"、"Python库"提供了关于这个资源的关键...
7. **安装与使用**:要使用`django_flexible_forms`,首先确保Python和pip已安装,然后在命令行中输入`pip install django_flexible_forms-0.4.0-py3-none-any.whl`(路径指向下载的.whl文件),完成安装后,在...
"Python库 | django_api_forms-0.16.1-py3-none-any.whl" 是一个针对Python开发者的资源,特别适用于那些使用Django框架进行后端开发的工程师。这个资源是一个wheel文件,它是Python软件包的一种二进制格式,旨在...
在 `django-select2-forms-3.0.0.tar.gz` 压缩包中,包含了该库的源代码和必要的资源文件,供开发者在项目中集成和使用。安装此库后,开发者可以轻松地将 Select2 的功能引入到 Django 的 ModelForm 或自定义表单中...
本文档作为对上一篇关于Django用户登录注册等内容的延续,主要聚焦于如何利用第三方库Crispy Forms来实现前端页面的美化与优化。对于初学者而言,掌握Django前端模板的应用以及如何结合Bootstrap框架来提升用户体验...
通过深入理解和使用`django-crispy-forms`和`crispy-forms-foundation`,Django开发者可以快速构建出与Foundation设计风格一致的、具有出色用户体验的表单,同时保持代码的整洁和可维护性。在实际项目中,这将极大地...
django-crispy-forms支持Django 2.2、3.0和3.1和Python 3.5+。 注意:Django 3.1需要django-crispy-forms版本1.9或更高版本。 1.9.0之前的django-crispy-forms版本也支持Python 2.7和Django 1.11 / 2.1 该应用...
在Django框架中,表单(forms)是处理用户输入数据的重要工具,它简化了前后端交互的过程。本文将深入探讨如何在Django forms中创建一个包含`select`下拉框的表单,并且理解其传值机制。 首先,我们需要在`forms.py...
本文将深入探讨Django forms组件,通过实例代码来帮助理解其核心功能和使用方法。 首先,让我们了解Django forms的基本结构。在Django中,我们可以通过创建一个继承自`forms.Form`的类来定义一个表单。例如,在`my_...
在Django框架中,开发一个功能丰富的后台管理系统是常见的需求,包括自定义页面、输入框联想、搜索功能以及权限管理等。本项目旨在提供一种实现这些功能的方法,以提升用户体验和管理效率。以下是对这些知识点的详细...
总结,`djangocms-forms` 为 Django CMS 用户提供了一种强大而直观的工具,用于构建自定义表单,提升网站的互动性和用户体验。无论你是开发者还是内容管理员,这个库都将使你构建表单的过程更加高效和愉快。
自己尝试了一下,发现一个问题,当验证登陆成功后,页面会自动跳转到/account/profile,我并不想把页面跳转到这个页面,如何修改呢? 查了一堆网页,还是官网靠谱,很简单,就在project的setting里加一句话就Okay! ...
在Web开发中,Django和Ajax的结合使用可以极大地提升用户体验,通过无刷新的方式实现实时页面更新。本文将详细讲解如何在Django框架下利用Ajax实现数据的动态更新。 首先,我们需要理解Django和Ajax的基本概念。...
此外,为了提高查询效率和页面性能,还可以对数据库进行索引优化、使用缓存技术等。在大型应用中,对于视图中涉及的数据处理逻辑,建议尽量保持简洁,避免在模板中进行复杂的逻辑处理,以免造成代码难以维护和扩展。...
首先,指南涵盖了Django的基本概念和结构,如模型(Models)、视图(Views)和模板(Templates)层,以及如何处理表单(Forms)和使用Django内置的管理站点(Theadmin)。 在模型层(Themodellayer),开发者学习...