国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Django admin實現圖書管理系統菜鳥級教程完整實例

Django admin實現圖書管理系統菜鳥級教程完整實例

2020-12-24 00:22mengwei Python

這篇文章主要介紹了Django admin實現圖書管理系統菜鳥級教程完整實例,具有一定借鑒價值,需要的朋友可以參考下。

Django 有著強大而又及其易用的admin后臺,在這里,你可以輕松實現復雜代碼實現的功能,如搜索,篩選,分頁,題目可編輯,多選框.

簡單到,一行代碼就可以實現一個功能,而且模塊之間耦合得相當完美.

不信,一起來看看吧!?用Django實現管理書籍的系統,并能在前臺界面對書籍進行增刪查改,篩選,分頁,以及批量查詢修改功能.

準備工作

?
1
#準備好你的數據庫模型思維導圖

Django admin實現圖書管理系統菜鳥級教程完整實例

0.新建一個Django項目,起名為books,并且同時新建一個應用book11

Django admin實現圖書管理系統菜鳥級教程完整實例

1.首先要設置models模塊,根據思維導圖,我們知道需要定義3張表,分別是Book,Author,Publisher.

1.1然而,django強大的地方在于,你無需在數據庫開辟一張表,ORM的模型,讓你只需要關注你要操作的對象.這里用類對象,來替代表,從而使得定義一張數據表Book,就只需要簡單的創建Book類對象,即可

?
1
2
3
4
5
6
7
8
#先設計作者Author對象(表)[models.py]
?
class Author(models.Model): #繼承于models.Model這個父類,從而實現多態
  first_name=models.CharField(max_length=32) #名字的字段,使用字符串格式,最大長度32
  last_name=models.CharField(max_length=32)
  email=models.EmailField()         #email字段,使用email自帶的格式
  def __unicode__(self):           #定義unicode函數,是為了讓對象在實例化的時候,可以返回打印輸出它的名字<阿文>.不至于顯示為<** object>
    return "%s--%s"%(self.first_name,self.last_name)
?
1
2
3
4
5
6
7
8
9
10
#出版社
class Publisher(models.Model):
  name=models.CharField(max_length=64,unique=True) #出版社名稱,唯一,是主鍵
  address=models.CharField(max_length=64,unique=True)
  city=models.CharField(max_length=32)
  state_province=models.CharField(max_length=32)
  country=models.CharField(max_length=32)
  website=models.URLField()            #主頁,采用自帶的url格式
  def __unicode__(self):
    return "%s"%(self.name)
?
1
2
3
4
5
6
#定義一個選項,里面包含3個可選框,用以下面的書籍表publisher_state下拉選擇
STATUS_CHOICES=(
  ('checkout',u'已出版'),
  ('dai',u'待出版'),
  ('status',u'審核中'),
)
?
1
2
3
4
5
6
7
8
9
#書籍表
class Book(models.Model):
  name=models.CharField(max_length=64
  authors=models.ManyToManyField(Author) #作者,多對多的關系
  publisher=models.ForeignKey(Publisher) #出版社,外鍵管理到Publisher表
  publisher_date=models.DateField(auto_now_add=True)
  publisher_state=models.CharField(max_length=20,choices=STATUS_CHOICES,default='checkout') #出版狀態,是一個可選框
  def __unicode__(self):
    return "%s--%s"%(self.name,self.publisher_date)

完整的代碼:

Django admin實現圖書管理系統菜鳥級教程完整實例

1.2然后,創建完models后,一定要創建映射文件,并且映射到數據庫,否則數據庫是不存在的

?
1
python manage.py makemigrations
?
1
python manage.py migrate

2.調試shell的models模塊,使用對象操作增刪查改

?
1
2
3
4
5
6
7
8
9
10
##進入shell 模式
python manage.py shell
##導入Publisher對象
from book11.models import Publisher
##查詢id=1的queryset賦值給p
p=Publisher.objects.get(id=1)
#對的對象進行操作,修改city="changsha",等價于[Publisher.objects.filter(id=1).update(city='changsha')]操作.
p.city='changsha'
#需要提交保存,否則不生效
p.save()

前后對比,操作數據庫字段就像操作對象一樣簡單!這便是ORM的優勢

Django admin實現圖書管理系統菜鳥級教程完整實例

Django admin實現圖書管理系統菜鳥級教程完整實例

3.增加一個admin用戶

?
1
2
3
4
5
6
G:\git\web\books>python manage.py createsuperuser #增加一個超級用戶
Username (leave blank to use 'huan5'): admin #用戶名
Email address: admin@qq.com         #郵箱
Password:                  #輸8位密碼2次
Password (again):
Superuser created successfully.

4.編輯admin.py

4.1將models導入,并且注冊網站的Author,Publisher,Boos模塊

?
1
2
3
4
5
6
#設置默認編碼符
# -*- coding: utf-8 -*-
from book11 import models #導入數據庫
admin.site.register(models.Author)
admin.site.register(models.Publisher)
admin.site.register(models.Book)
?
1
2
3
4
#啟動服務
python manage.py runserver 0.0.0.0:8086
#并打開瀏覽器執行
http://127.0.0.1:8086

Django admin實現圖書管理系統菜鳥級教程完整實例

書名已經成功顯示出來

4.2配置一些擴展功能

?
1
2
3
4
5
6
7
8
9
10
11
12
from book11 import models
# 創建一個Bookadmin的modeladmin的子類
class Bookadmin(admin.ModelAdmin):
  list_display=('id','name','publisher','publisher_date','publisher_state')
  search_fields=('name',)
  list_filter=('publisher','publisher_date',)
  list_per_page=5
  list_editable=('name','publisher_state',)
  list_select_related=('publisher',)
  filter_horizontal=('authors',)
  raw_id_fields=('publisher',)
  actions=['set_publisher_checkout','set_publisher_dai','set_publisher_status','set_publisher_del',]
?
1
2
3
admin.site.register(models.Author,Authoradmin) #不要忘了把這些定義好的擴展寫進來
admin.site.register(models.Publisher,Publisheradmin)
admin.site.register(models.Book,Bookadmin)

Django admin實現圖書管理系統菜鳥級教程完整實例

Django admin實現圖書管理系統菜鳥級教程完整實例

?
1
2
3
#配置作者頁面的擴展內容
class Authoradmin(admin.ModelAdmin):
  list_display=('first_name','last_name','email')

Django admin實現圖書管理系統菜鳥級教程完整實例

?
1
2
3
#配置出版社的擴展顯示
class Publisheradmin(admin.ModelAdmin):
  list_display = ('name','address','country',)

Django admin實現圖書管理系統菜鳥級教程完整實例

4.3為了批量操作,我們給他增加了actions,定義如下

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
  def set_publisher_checkout(modeladmin,request,queryset):
    selected=request.POST.getlist(admin.ACTION_CHECKBOX_NAME) #選中傳入的表單中,勾選的checkbox對應的id集合
    models.Book.objects.filter(id__in=selected).update(publisher_state='checkout') #將所有選中的id對象,修改出版狀態為checkout
  def set_publisher_dai(modeladmin,request,queryset):
    selected=request.POST.getlist(admin.ACTION_CHECKBOX_NAME)
    models.Book.objects.filter(id__in=selected).update(publisher_state='dai')
  def set_publisher_status(modeladmin,request,queryset):
    selected=request.POST.getlist(admin.ACTION_CHECKBOX_NAME)
    models.Book.objects.filter(id__in=selected).update(publisher_state='status')
  def set_publisher_del(modeladmin,request,queryset):    #########擴展部分,增加對選中的記錄今夕刪除!###########
    selected=request.POST.getlist(admin.ACTION_CHECKBOX_NAME)
    models.Book.objects.filter(id__in=selected).delete()
?
  set_publisher_checkout.short_description="設置所有的書籍為--已出版"     #為了使界面更加友好,添加別名
  set_publisher_status.short_description="設置所有的書籍為--審核中"
  set_publisher_dai.short_description="設置所有的書籍為--待出版"
  set_publisher_del.short_description="設置所有的書籍為--刪除"

效果圖

Django admin實現圖書管理系統菜鳥級教程完整實例

調試成功

附上admin.py的全部代碼,方便調試不成功的小伙伴

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
?
from django.contrib import admin
from book11 import models
# Register your models here.
class Bookadmin(admin.ModelAdmin):
  list_display=('id','name','publisher','publisher_date','publisher_state')
  search_fields=('name',)
  list_filter=('publisher','publisher_date',)
  list_per_page=5
  list_editable=('name','publisher_state',)
  list_select_related=('publisher',)
  filter_horizontal=('authors',)
  raw_id_fields=('publisher',)
  actions=['set_publisher_checkout','set_publisher_dai','set_publisher_status','set_publisher_del',]
?
  def set_publisher_checkout(modeladmin,request,queryset):
    selected=request.POST.getlist(admin.ACTION_CHECKBOX_NAME)
    models.Book.objects.filter(id__in=selected).update(publisher_state='checkout')
  def set_publisher_dai(modeladmin,request,queryset):
    selected=request.POST.getlist(admin.ACTION_CHECKBOX_NAME)
    models.Book.objects.filter(id__in=selected).update(publisher_state='dai')
  def set_publisher_status(modeladmin,request,queryset):
    selected=request.POST.getlist(admin.ACTION_CHECKBOX_NAME)
    models.Book.objects.filter(id__in=selected).update(publisher_state='status')
  def set_publisher_del(modeladmin,request,queryset):
    selected=request.POST.getlist(admin.ACTION_CHECKBOX_NAME)
    models.Book.objects.filter(id__in=selected).delete()
?
  set_publisher_checkout.short_description="設置所有的書籍為--已出版"
  set_publisher_status.short_description="設置所有的書籍為--審核中"
  set_publisher_dai.short_description="設置所有的書籍為--待出版"
  set_publisher_del.short_description="設置所有的書籍為--刪除"
?
class Authoradmin(admin.ModelAdmin):
  list_display=('first_name','last_name','email')
?
class Publisheradmin(admin.ModelAdmin):
  list_display = ('name','address','country',)
?
admin.site.register(models.Author,Authoradmin)
admin.site.register(models.Publisher,Publisheradmin)
admin.site.register(models.Book,Bookadmin)

不禁感嘆再也沒有比django更加簡單好用,容易操作的后臺了.

總結

Django真的太強大。。

以上就是本文關于Django admin實現圖書管理系統菜鳥級教程完整實例的全部內容,希望對大家有所幫助。如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

原文鏈接:http://www.yueguangzu.net/?p=1181

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 日韩精品一区二区三区免费视频 | 超碰在线91 | 欧美一区二区三区视频在线观看 | 亚洲www视频 | 黄色片在线免费观看 | 日韩 欧美 中文 | 久久性色 | 亚洲成人毛片 | 永久av| 亚洲精品成人悠悠色影视 | 国产精品成人av | 二区影院 | 国产欧美精品一区二区色综合 | 成人三级视频 | 天天亚洲综合 | 久久成人一区二区 | 日韩欧美中文 | 欧美精品999| 日韩一区二区免费视频 | 日韩欧美在线观看视频 | 久久国产亚洲视频 | 日韩精品视频在线播放 | 91黄视频 | 国产一级片 | 日韩国产精品一区二区三区 | 日韩和的一区二在线 | 人妖天堂狠狠ts人妖天堂狠狠 | 欧美精品久久久 | 国产一级一级国产 | 久久久久久久久久久高潮 | 中文字幕精品一区久久久久 | 国产精品一区二区在线观看 | 91精品视频在线播放 | 91精品国产综合久久福利软件 | 亚洲精品www久久久久久广东 | 国产99久久精品 | 亚洲成人第一网站 | 日韩中文字幕免费视频 | 精品美女在线观看视频在线观看 | 一级看片 | 97天堂|