django admin应用开发(1) 之 引言

news/2024/7/7 1:52:52

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

第一节 引言

1.1 准备知识

Python&Django配置

Django官方主页:www.djangoproject.com

开发IDE,个人倾向于PyCharm,在这里可以快速的学习到一些Django使用技巧。

1.2 什么是应用(APP)

要想回答这个问题,首先要了解Django项目的结构。Django项目采用“项目(project)-应用(app)-模块(module)”的两级结构,其中app是一个实现某种功能的web程序,有自己的数据模型、视图、模板等。也就是说一个project可以包含多个app,一个app也可以在多个项目中使用。如果觉得自己写的app有一定的通用性,也可以将其发布。常见的Django第三方app有很多,可以从官方wiki(链接)上找。

1.3 admin应用

admin应用指的是django自带的admin应用,它的路径是django.contrib.admin

利用它可以自动生成后台管理界面,这也是Django强大的地方之一(个人觉得还有一点是部署方便,建立一个demo网站只需要python + django + runserver + sqlite3基本上可以搞定所有东西,不必想php一样装服务器什么)。在《The Django Book》对admin的描述是这样的:

For a certain class of Web sites, an admin interface is an essential part of the infrastructure. This is a Web-based interface, limited to trusted site administrators, that enables the adding, editing and deletion of site content. Some common examples: the interface you use to post to your blog, the backend site managers use to moderate user-generated comments, the tool your clients use to update the press releases on the Web site you built for them.

There’s a problem with admin interfaces, though: it’s boring to build them. Web development is fun when you’re developing public-facing functionality, but building admin interfaces is always the same. You have to authenticate users, display and handle forms, validate input, and so on. It’s boring, and it’s repetitive.

So what’s Django’s approach to these boring, repetitive tasks? It does it all for you – in just a couple of lines of code, no less. With Django, building an admin interface is a solved problem.

This chapter is about Django’s automatic admin interface. The feature works by reading metadata in your model to provide a powerful and production-ready interface that site administrators can start using immediately. Here, we discuss how to activate, use, and customize this feature.

(译文):

对于某一类网站,管理界面是基础设施中非常重要的一部分。 这是以网页和有限的可信任管理者为基础的界面,它可以让你添加,编辑和删除网站内容。 一些常见的例子:你可以用这个界面发布博客,后台的网站管理者用它来润色读者提交的内容,你的客户用你给他们建立的界面工具更新新闻并发布在网站上,这些都是使用管理界面的例子。

但是管理界面有一问题:创建它太繁琐。当你开发对公众的功能时,网页开发是有趣的,但是创建管理界面通常是千篇一律的。 你必须认证用户,显示并管理表格,验证输入的有效性诸如此类。 这很繁琐而且是重复劳动。

Django 在对这些繁琐和重复的工作进行了哪些改进?它用不能再少的代码为你做了所有的一切。Django 中创建管理界面已经不是问题。

这一章是关于 Django 的自动管理界面。这个特性是这样起作用的: 它读取你模式中的元数据,然后提供给你一个强大而且可以使用的界面,网站管理者可以用它立即工作


使用admin应用只需要以下几个步骤:

  1. [settings/urls]配置相关的urls.py和settings.py,这一步通常是注释相关代码

  2. [models]定义自己的model

  3. [admin]为每一个model写一个ModelAdmin,并自定义自己的行为、UI、逻辑。

  4. [admin]将ModelAdmin和model关联,使用admin.site.register方法


1.4 The Django Book

《The Django Book》在线文档

中文:http://djangobook.py3k.cn/2.0/chapter06/

英文:http://www.djangobook.com/en/2.0/chapter06.html


 

 

转载于:https://my.oschina.net/kinegratii/blog/217633


http://www.niftyadmin.cn/n/604156.html

相关文章

指令详解 三菱plc_收藏向!PLC编程语言/操作指令/使用步骤详解

点击箭头处“工业之家”,选择“关注公众号”!PLC编程语言/操作指令/使用步骤详解一、PLC编程语言1.梯形图编程语言梯形图沿袭了继电器控制电路的形式,它是在电器控制系统中常用的继电器、接触器逻辑控制基础上简化了符号演变来的&…

申请@msn.com的邮箱最新网址

需要的尽快申请https://accountservices.passport.net/reg.srf?nsmsn.com&sl1&lc

Js代码收藏大全

1. οncοntextmenu"window.event.returnvaluefalse" 将彻底屏蔽鼠标右键 <table border οncοntextmenureturn(false)></table> 可用于Table 2. <body onselectstart"return false"> 取消选取、防止复制 3. οnpaste"return …

ubuntu查看命令

以非root用户更新系统 sudo: sudo是linux系统管理指令&#xff0c;是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具&#xff0c;如halt&#xff0c;reboot&#xff0c;su等等。这样不仅减少了root用户的登陆 和管理时间&#xff0c;同样也提高了安全性。Sudo不…

django 默认查询条件_Django多条件筛选查询

Django多条件筛选查询主模型只存在外键一对多关系模型设计# 快捷筛选状态class Status(models.Model):order_number models.PositiveIntegerField(uniqueTrue, verbose_name状态编号)status_tag models.CharField(max_length10, verbose_name状态名称)class Meta:ordering […

Linux基础入门及系统管理01-Linux操作系统及常用命令05

一、时间管理1、Linux&#xff1a;开机启动读取rtc的时间&#xff1b;硬件时钟clock系统时钟date2、主板上计量时间的叫晶体振荡器&#xff0c;晶体振荡器来完成时间计量。二、获得命令的使用帮助1、内部命令获得方式&#xff1a;help COMMAND2、外部命令获得方式&#xff1a;C…

jdbc连接常用数据库代码[转载]

1、Oracle8/8i/9i数据库&#xff08;thin模式&#xff09;Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();Stringurl"jdbc:oracle:thin:localhost:1521:orcl";//orcl为数据库的SIDStringuser"test";Stringpassword"test&…

checkbox设置三种状态 qt_QTableWidget中checkBox状态判断

在QTableWidget表格中显示一个QCheckBox&#xff1a;一&#xff1a;最先想到的是void QTableWidget::setCellWidget(int row, int column,QWidget*widget)&#xff0c;事实证明使用这个函数正常显示CheckBox没有问题&#xff0c;但是却无法通过QTableWidget对象去读取这个Check…