导读:很多朋友问到关于django中后台管理有什么用的相关问题,本文首席CTO笔记就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!
django sqlalchemy怎么用admin后台管理
1. Django Admin 不适合最终用户使用
Django admin是为管理员设计的, 而不是给最终用户使用的. Django admin的存在是为了方便管理员添加修改删除数据和管理站点任务.
2. 列表显示
如上图, 因为model的默认文本显示是 xxx object, 所以在admin列表页中默认显示的也是xxx object. 如果希望显示更有用的信息 我们可以进行如下设置:
为model写__unicode__()方法
如果希望model在列表页中显示更多项, 则需要使用list_display
__unicode()__例子:
# models.py
from django.db import models
class Article(models.Model):
title = models.CharField(max_length=100)
slug = models.CharField(max_length=100)
content = models.TextField()
is_published = models.BooleanField(default=False)
def __unicode__(self):
return self.title
# admin.py
from django.contrib import admin
from .models import Article
admin.site.register(Article)
结果:
如果希望显示其他项:
# admin.py
from django.contrib import admin
from .models import Article
class ArticleAdmin(admin.ModelAdmin):
list_display = ('title', 'is_published')
admin.site.register(Article, ArticleAdmin)
结果:
3. 为ModelAdmin增加动作
我们可以为ModelAdmin增加method或function, 以此使admin界面更符合我们的需求.
例如, 我们希望在在admin界面中显示一个明确地URL, 但当我们在model中定义了get_absolute_url()方法后, django admin默认给我们的却是一个与我们想要的URL完全不同的URL. 于是我们可以通过以下方法定义该URL:
# admin.py
from django.contrib import admin
from django.core.urlresolvers import reverse
from django.utils.html import format_html
from .models import Article
class ArticleAdmin(admin.ModelAdmin):
list_display = ('title', 'is_published',)
readonly_fields = ('show_url',)
def show_url(self, instance):
url = reverse('article_detail', kwargs={'pl': instance.pk})
response = format_html("""a href="{0}"文章预览preview/a""", url)
return response
show_url.short_description = u"文章预览"
# 显示HTML tag
# 对于用户提交的数据, 永远不要这么设置!
show_url.allow_tags = True
注意, allow_tags属性, 其默认值是False, 如果错误使用将会带来安全隐患. 如果设置为True,
在admin中会允许显示HTML tag. 因此我们使用的原则是, 对于用户输入的信息, 永远不设置allow_tags=True.
只有当其内容是系统生成, 用户无法修改的时, 才能使用allow_tags=True.
4. 不在多用户编辑环境使用list_editable
django admin为我们提供了在列表页修改model属性的功能, 这样方便管理员一次修改多个属性. 如果管理员只有一个人的话,
那就没问题, 但在多用户环境中时, 却是会存在一个很严重的潜在问题. 因为在list页提交的修改信息, 记录的是位置, 而不是model的主键.
举个例子, 文章列表页默认按照创建顺序逆序排列, 用户A打开文章列表页, 并开始修改, 同时用户B增加了一篇新文章, 此时,
当用户A提交修改后其后的文章信息都会出错.
django有哪些特点?
django 一个相当全能的web框架。
首先它集成了MVC 和 ORM这些技术。
很有意思的是它严格遵循MVC的模式,但它和平时我们用的MVC很不同,它自已有一套MTV(model-view-template)的模式 .要说django的特点一时间真没认真的和其它框架做比较。不过它开发效率高真是很多框架不能比的。它和JAVA的面向接口编程的思想很不一样,python虽然也是面向对象的,但它系统集成的方式和JAVA很不一样,java 是用接口把系统灵活的分层,而python根本就不用写接口,这得益于python这种语言简洁的特点。不说了,刚用django没多久没有认真比较过,说句题外话,没必要刻意的去归纳这些特点,除非你是教书的~~~
django是什么
Django是一个开放源代码的Web应用框架,由Python写成。采用了MVT的框架模式,即模型M,视图V和模板T。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。
Django 项目是一个Python定制框架,它源自一个在线新闻 Web 站点,于 2005 年以开源的形式被释放出来。Django 框架的核心组件有:
用于创建模型的对象关系映射
为最终用户设计的完美管理界面
一流的 URL 设计
设计者友好的模板语言
缓存系统。
Django(发音:[`dʒæŋɡəʊ]) 是用python语言写的开源web开发框架(open source web framework),它鼓励快速开发,并遵循MVC设计。Django遵守BSD版权,初次发布于2005年7月, 并于2008年9月发布了第一个正式版本1.0 。
Django 根据比利时的爵士音乐家Django Reinhardt命名,他是一个吉普赛人,主要以演奏吉它为主,还演奏过小提琴等。
由于Django在近年来的迅速发展,应用越来越广泛,被著名IT开发杂志SD Times评选为2013 SD Times 100,位列"API、库和框架"分类第6位,被认为是该领域的佼佼者 。
Django的主要目的是简便、快速的开发数据库驱动的网站。它强调代码复用,多个组件可以很方便的以"插件"形式服务于整个框架,Django有许多功能强大的第三方插件,你甚至可以很方便的开发出自己的工具包。这使得Django具有很强的可扩展性。它还强调快速开发和DRY(Do Not Repeat Yourself)原则。
Django究竟是个什么东西
Django是用Python开发的一个免费开源的Web框架,提供了许多网站后台开发经常用到的模块,使开发者能够专注于业务部分。并且囊括的Web应用部分可以用于快速搭建高性能、优雅的网站。并且提供了通用Web开发模式的高度抽象,通过DRY的理念为频繁进行的编程作业提供了快速解决方法。
Django能在开源发行之后吸引众多追随者,离不开它所具备的以下优点:
①齐全的功能。自带大量常用工具和框架,可轻松、迅速开发出一个功能齐全的Web应用。
②完善的文档。Django已发展十余年,具有广泛的实践案例,同时Django提供完善的在线文档,Django用户能够更容易地找到问题的解决方案。
③强大的数据库访问组件。Django自带一个面向对象的、反映数据模型与关系型数据库间的映射关系的映射器,开发者无须学习SQL语言即可操作数据库。
④灵活的URL映射。Django提供一个基于正则表达式的URL分发器,开发者可灵活地编写URL。
⑤丰富的模板语言。Django模板语言功能丰富,支持自定义模板标签;Django也支持使用第三方模板系统,如jinja2等。
⑥健全的后台管理系统。Django内置了一个后台数据管理系统,经简单配置后,再编写少量代码即可使用完整的后台管理功能。
⑦完整的错误信息提示。Django提供了非常完整的错误信息提示和定位功能,可在开发调试过程中快速定位错误或异常。
⑧强大的缓存支持。Django内置了一个缓存框架,并提供了多种可选的缓存方式。
⑨国际化。Django包含了一个国际化系统,Django组件支持多种语言。
结语:以上就是首席CTO笔记为大家整理的关于django中后台管理有什么用的相关内容解答汇总了,希望对您有所帮助!如果解决了您的问题欢迎分享给更多关注此问题的朋友喔~