Django学习笔记1 启动及配置一个Django项目

1. 创建一个Django项目,在命令行中先cd进入想存储代码的目录,

django-admin.py startproject mysite

2.启动开发用服务器 从外层mysite进入,运行

python manage.py runserver

获得输出如下内容:

January 28, 2015 - 12:48:43
Django version 1.7.3, using settings 'mysite1.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

3.数据库设置 编辑mysite/settings.py文件

DATABASES = {
    'default': {
        #'ENGINE': 'django.db.backends.sqlite3',
        #'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
        'ENGINE': 'django.db.backends.mysql',
        'NAME':'djtest',
        'USER':'root',
        'PASSWORD':'123456',
    }
}

4.syncdb命令按照INSTALLED_APPS设置,并在setting.py所配置的数据库中创建必要的数据库表

python manage.py syncdb

然后在数据库中使用 show tables;就可以查看创建的表

5创建模型:创建应用,与manage.py在同一目录下并输入以下命令

python manage.py startapp polls

将创建一个polls目录,有modles,views,tests

6.在modles中写入

class Poll(models.Model):
    question=models.CharField(max_length=200)
    pub_date=models.DateTimeField('date published')
    def __unicode__(self):
        return self.question

class Choice(models.Model):
    poll=models.ForeignKey(Poll)
    choice_text = models.CharField(max_length=200)
    votes=models.IntegerField(default=0)
    def __unicode__(self):
        return self.choice_text

class Publisher(models.Model):
    name=models.CharField(max_length=30)
    address=models.CharField(max_length=50)

7.再次编辑settings.py

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'polls',
)

把polls(应用的目录)加入

8.同步更新数据库,将model插入到数据库中

$ python manage.py syncdb # wrong! because of migraition
ues:
$ python manage.py makemigrate
$ python manage.py migrate

进入mysql 可以发现这些表都创建好了

9.最后将models加入到Admin管理中

from django.contrib import admin

# Register your models here.
from polls.models import Poll,Publisher,Choice

class AuthorAdmin(admin.ModelAdmin):
    list_display=('first_name','last_name','email')
    search_fields=('first_name','last_name')

admin.site.register(Poll)
admin.site.register(Publisher)
admin.site.register(Choice)

当一切配置好,发现Django 管理工具就而已运行,启动开发服务器

python manage.py runserver

在浏览器中欧你访问,就可以登录http://127.0.0.1:8000/admin/

就可以看到数据库的表,可视化这些操作

 

10. 进入python的交互式shell中玩弄- -Django给的API

通过 databaseAPI来浏览数据

python manage.py shell
>>> from polls.models import Poll,Choice
#系统中还没有Poll
>>> Poll.objects.all() []
#创建一个poll对象
>>> from django.utils import timezone >>> p=Poll(question="What's new?",pub_date=timezone.now())
#保存到数据库中必须调用save()方法
>>> p.save() >>> p.id 1L >>> p.question "What's new?" >>> p.pub_date datetime.datetime(2015, 1, 28, 14, 41, 13, 272036, tzinfo=<UTC>)
#更改数据再save
>>> p.question="What's up" >>> p.save()

#显示数据库中所有的poll 通过objects.all()函数 >>> Poll.objects.all() [<Poll: What's up>] >>>
自定义管理表单,在admin.py中设置,可以是黑色之不同的显示顺序和,大小框标题

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



admin.site.register(Poll,PollAdmin)


添加关联的对象:

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


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


 


admin.site.register(Poll,PollAdmin)

 
posted @ 2015-01-28 22:35  zzblee苦瓜  阅读(261)  评论(0编辑  收藏  举报