文档章节

使用Django开发一个图书管理系统----04.通过admin模块管理我们的app和model

luckTom
 luckTom
发布于 2014/11/13 10:07
字数 797
阅读 453
收藏 0

BOOKMS是一个公司内部的图书管理系统。BOOKMS的后台管理主要使用Django的admin模块。

本系列用多次迭代方法,逐步实现一个图书管理系统BOOKMS。

本文主要介绍app的后台管理和用django-groundwork 生成前台CRUD。

 

一.将自己的models加入到admin的管理

上一回我们可以看到后台的界面了,但细心的你一定发现了里面没有我们要的book模型的管理。下面让我们把自定义的book模型加入到管理中,这样我们就能够通过这个漂亮的界面添加修改删除数据库中的对象了。

在bookapp的目录下创建一个文件admin.py,然后输入以下代码:

from django.contrib import admin
from bookapp.models import *

class BookAdmin(admin.ModelAdmin):
pass

admin.site.register(Book)

这些代码通知管理工具为这些模块逐一提供界面。然后我们重新运行一下再次访问http://127.0.0.1:8000/admin/,这回终于看见我们的模块和模型了。

image

这里有个小BUG要修改一下,打开python安装目录lib子目录里的site.py找到setencoding()方法

if 0:
# Enable to support locale aware default string encodings.
import locale
loc = locale.getdefaultlocale()
if loc[1]:
encoding = loc[1]

if 0改为if 1,如果忽略此步下面添加里输入有中文会在保存时候出错

我们来添加2本图书,数据来源自豆瓣。

image

image

这里是后台的管理界面,这时我们基本可以对我们的模型进行全部的增删改查操作了。关于admin模块的详细修改和细化,后面详细介绍。

二.前台功能生成

后台是可以使用了,但我们的前台还没有呢,当然作为一个懒人我们自己不会去一点点写,django-groundwork 会帮我们生成最基本的CRUD。

首先到https://github.com/madhusudancs/django-groundwork/downloads下载zip包。如果有安装git直接git获取。

下载的包解开后把django-groundwork文件夹复制到我们的project中,然后在setting.py里加入这个app

INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
# Uncomment the next line to enable the admin:
'django.contrib.admin',
# Uncomment the next line to enable admin documentation:
# 'django.contrib.admindocs',
'BOOKMS.bookapp',
'django-groundwork',
)

接着我们还是盗命令行然后进入到我们的project目录运行:

python manage.py help

这里我们会发现多了一个groundwork命令。

接下来我们来为bookapp的Book生成页面:

python manage.py groundwork bookapp Book

输入Y确认,它就帮我们生成了。

这是运行项目并访问http://127.0.0.1:8000/bookapp/book/list/

image

三。groundwork 究竟帮我们干了什么

偷懒是不好的,我们起码 要知道groundwork 帮我们都干了什么,下面简单说明。

首先看bookms/urls.py:

urlpatterns += patterns ('',
(r'^bookapp/', include('bookapp.urls')),
)

这里帮我们加入一个路由,url里bookapp开头的都让我们自己的模块去处理。

然后我们在看看bookms/bookapp/urls.py:

 

将CRU(没有

urlpatterns = patterns('',

(r'book/create/$', create_book),
(r'book/list/$', list_book ),
(r'book/edit/(?P<id>[^/]+)/$', edit_book),
(r'book/view/(?P<id>[^/]+)/$', view_book), 
)

D)都添加了隐射。

视图都定义在了bookms/bookapp/views.py这里不再多说。

本文转载自:http://www.cnblogs.com/lt1983/archive/2012/05/16/2504239.html

共有 人打赏支持
luckTom
粉丝 5
博文 18
码字总数 142
作品 0
南京
技术主管
私信 提问
使用Django开发一个图书管理系统 05---改造界面

BOOKMS是一个公司内部的图书管理系统。 本系列用多次迭代方法,逐步实现一个图书管理系统BOOKMS。 本文主要介绍使用bootstrap美化前台页面和修改admin模块的添加图书模块时使用豆瓣api获取数...

luckTom
2014/11/13
0
0
Ubuntu利用Django框架快速搭建网站

前言 Django是一个开源的Web应用框架,由Python写成,它的主要目标是使得开发复杂的、数据库驱动的网站变得简单。Django采用MVC设计模式注重组件的重用性和“可插拔性”,敏捷开发和DRY法则(...

初雪之音
2016/08/02
126
0
django admin应用开发(1) 之 引言

第一节 引言 1.1 准备知识 Python&Django配置 Django官方主页:www.djangoproject.com 开发IDE,个人倾向于PyCharm,在这里可以快速的学习到一些Django使用技巧。 1.2 什么是应用(APP) 要想...

Kinegratii
2014/04/04
0
0
WEB框架之---Django初级篇

一、下载与安装(Windows版) 下载地址:https://www.djangoproject.com/download/ 或者通过命令:pip install django==1.11.2进行安装(Python3使用pip3)推荐使用此版本 安装完成后找到dja...

AltBoy
06/26
0
0
[转]使用Google App Engine Helper for Django

使用Google App Engine Helper for Django 原著: Matt Brown 译者: DaNmarner 原文链接: http://code.google.com/appengine/articles/appenginehelperfordjango.html 译文链接: http://d......

zting科技
2017/01/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Linux学习-1031(rsync同步工具 上)

10.28 rsync工具介绍 10.29/10.30 rsync常用选项 10.31 rsync通过ssh同步 一、 rsync工具介绍 rsync是一个同步工具,在日常的运维中常会用到。它可以本地同步,也实现可以远程两台机器同步。...

wxy丶
3分钟前
0
0
python实战一期:第一天

1. 为什么学习python 1.1 为什么要学Python? Python第一是个非常牛B的脚本语言,能满足绝大部分自动化运维的需求,又能做后端C/S架构,又能用WEB框架快速开发出高大上的Web界面,只有当你自...

laoba
5分钟前
0
0
Java并发编程学习三:线程同步的关键字以及理解

上篇文章中介绍了Java线程的带来的问题与内存模型中介绍了线程可能会引发的问题以及对应Java的内存模型,顺带介绍了Volatile和Sychronized关键字。今天对Java中涉及到的常见的关键类和关键字...

JerryLin123
11分钟前
0
0
我用代码来给你们分析一个赚钱的技巧

赚钱是个俗气的话题,但又是人人都绕不开的事情。我今天来“科学”地触碰下这个话题。 谈赚钱,就会谈到理财、投资,谈到炒股。有这样一个笑话: 问:如何成为百万富翁? 答:带一千万进入股...

crossin
12分钟前
0
0
spring MatchingBean应用

1、编写接口FactoryList import java.util.List;public interface FactoryList<E extends MatchingBean<K>, K> extends List<E> { E getBean(K factor); List<E> getBeanLi......

重城重楼
25分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部