文档章节

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

luckTom
 luckTom
发布于 2014/11/13 10:07
字数 797
阅读 459
收藏 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 中使用 django-south,实现数据迁移

在本文中, 将会介绍Django-south的基本概念和基本用法, 帮助Django开发人员简化数据迁移的过程. 在django-admin命令中有syncdb指令, 其目的是根据model.py创建相应的数据库表. 但我们在开发的...

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

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

AltBoy
2018/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

没有更多内容

加载失败,请刷新页面

加载更多

rabbitMQ 在spring 的使用

一、准备工作 maven依赖 <dependency>  <groupId>com.rabbitmq</groupId>  <artifactId>amqp-client</artifactId>  <version>4.0.2</version></dependency> <dependency......

狼王黄师傅
昨天
1
0
Android JNI总结

0x01 JNI介绍 JNI是Java Native Interface的缩写,JNI不是Android专有的东西,它是从Java继承而来,但是在Android中,JNI的作用和重要性大大增强。 JNI在Android中起着连接Java和C/C++层的作...

天王盖地虎626
昨天
1
0
大数据教程(11.8)Hive1.2.2简介&初体验

上一篇文章分析了Hive1.2.2的安装,本节博主将分享Hive的体验&Hive服务端和客户端的使用方法。 一、Hive与hadoop直接的关系 Hive利用HDFS存储数据,利用MapReduce查询数据。 二、Hive与传统数...

em_aaron
昨天
3
0
跟我学Spring Cloud(Finchley版)-15-Hystrix监控详解

Hystrix提供了监控Hystrix Command的能力,本节来详细探讨。 监控端点与数据 应用整合Hystrix,同时应用包含spring-boot-starter-actuator 依赖,就会存在一个/actuator/hystrix.stream 端点...

周立_ITMuch
昨天
6
0
day26:shell题

1、 判断当前主机的CPU生产商,其信息在/proc/cpuinfo文件中vendor id一行中。 如果其生产商为AuthenticAMD,就显示其为AMD公司; 如果其生产商为GenuineIntel,就显示其为Intel公司; 否则,...

芬野de博客
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部