zoukankan      html  css  js  c++  java
  • 使用Django开发一个图书管理系统04.通过admin模块管理我们的app和model

    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这里不再多说。

  • 相关阅读:
    C#代码控制tfs
    WindowService 执行命令
    自定义服务端Script控件支持javascript服务端路径?
    asp.net 实现LRC歌词播放
    asp.net ajax使用方法一
    左右两列布局
    XML反序列化一例
    自定义配置节备忘
    使用WTSGetActiveConsoleSessionId()的VISTA服务与桌面交互
    Java web 学习
  • 原文地址:https://www.cnblogs.com/lt1983/p/2504239.html
Copyright © 2011-2022 走看看