下载源码

安装

$sudo python setup.py install

建立site

$django-admin.py startproject mysite

运行Web Service

$ python manage.py runserver 0.0.0.0:80

安装Sqlite数据库

$sudo apt-get install sqlite sqlite3

Create DB

$sqlite3 test.db

Quit from sqlite3

sqlite> .quit

$

Site 配置文件

 Python编程语言在实际操作过程中,会首先创建一个项目,在这个项目中会包含有几个比较重要的Python文件。那么今天我们就会通过这篇文章中介绍的内容来充分的了解这些文件的功能,以方便我们的应用。

在新建一个Django项目之后,里面会默认创建四个Python文件:

__init__.py

manage.py

settings.py

urls.py

下面解释这些Python文件的作用:

__init__.py

Django项目是Python包,这个文件是用来告诉Python这个文件夹当做一个包。在Python术语中,包是一组模块的集合,主要用来把相似的文件分组,防止出现命名冲突。

manage.py

这是另外一个有用的脚步用来管理你的项目,你可以把它看做是你项目的的django-admin.py版本,其实,manage.py和django-admin.py是共用相同的后台代码。

settings.py

这是Django项目的主要配置文件,在这个文件里面,你可以具体说明很多选项,包括数据库设置、网页语言、需要turn on的Django功能。

urls.py

这是另外一个配置文件。你可以把它看做是介于URLS和用来处理它们的Python方法之间的匹配

 

激活admin站点

 

  • 取消sitting.py INSTALLED_APPS"django.contrib.admin"前的注释

  • 运行 python manage.py syncdb来updated数据库.

  • 取消站点文件夹下urls.py文件中的admin站点注释,如下:

    from django.conf.urls import patterns, include, url
    
    # Uncomment the next two lines to enable the admin:
    from django.contrib import admin
    admin.autodiscover()
    
    urlpatterns = patterns('',
        # Examples:
        # url(r'^$', '` project_name `.views.home', name='home'),
        # url(r'^` project_name `/', include('` project_name `.foo.urls')),
    
        # Uncomment the admin/doc line below to enable admin documentation:
        # url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
    
        # Uncomment the next line to enable the admin:
        url(r'^admin/', include(admin.site.urls)),
    )
    
重启服务器,执行  python manage.py runserver 0.0.0.0:8000

即可通过http://ip:8000/admin/浏览器访问admin站点

 

创建APP

涉及到数据操作的行为必须定义APP

创建app ,名字是poll

sudu python manager.py startapp poll

 

在admin站点中注册poll app中的poll对象

在models.py 中增加两行:

 

  1. from django.contrib import admin 
  2.     ...... 
  3. admin.site.register(Poll) 

在poll的目录下新建文件admin.py,内容如下:

from polls.models import Poll
from django.contrib import admin

admin.site.register(Poll)

定义app字段的显示顺序,在admin.py文件中修改如下:

#调整字段顺序 class PollAdmin(admin.ModelAdmin):
    fields = ['pub_date', 'question']    #或者list_display = ('pub_date','question')

admin.site.register(Poll, PollAdmin) 
  • list_display 选项控制变更列表所显示的列。缺省情况下变更列表只显示对像包含的表征字符串。
  • list_filter 选项在右边创建一个过滤条。可以在管理界面中指定任何域做为过滤器,但是用外键,日期,布尔值和有 choices 属性的域是最适合的。
  • ordering 选项控制对象在管理界面显示时的排序方式。
  • search_fields 选项创建了一个允许搜索文本内容的域。它可以搜索 title 字段中的内容。
     

 

#增加区域

class PollAdmin(admin.ModelAdmin):
    fieldsets = [
        (None,               {'fields': ['question']}),
        ('Date information', {'fields': ['pub_date']}),
    ]

admin.site.register(Poll, PollAdmin) 

 #增加分栏隐藏效果

class PollAdmin(admin.ModelAdmin):
    fieldsets = [
        (None,               {'fields': ['question']}),
        ('Date information', {'fields': ['pub_date'], 'classes': ['collapse']}),
    ] 
admin.site.register(Poll, PollAdmin) 

注册poll App中的Choice对象

from polls.models import Choice

admin.site.register(Choice) 

将Choice对象引入Poll对象

class ChoiceInline(admin.StackedInline):
    model = Choice
    extra = 3

class PollAdmin(admin.ModelAdmin):
    fieldsets = [
        (None,               {'fields': ['question']}),
        ('Date information', {'fields': ['pub_date'], 'classes': ['collapse']}),
    ]
    inlines = [ChoiceInline]

admin.site.register(Poll, PollAdmin) 

修改Choice对象从竖排到横排

class ChoiceInline(admin.TabularInline):
    model = Choice
    extra = 3

修改Polls APP的列显示

class PollAdmin(admin.ModelAdmin):
    # ...
    list_display = ('question', 'pub_date', 'was_published_recently')