下载源码
安装
$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 中增加两行:
- from django.contrib import admin
- ......
- 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)
#增加区域
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')
本文出自 “superman” 博客,谢绝转载!