您的位置:首页 > 编程语言 > Go语言

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

2015-01-28 22:35 483 查看
1.创建一个Django项目,在命令行中先cd进入想存储代码的目录,

django-admin.pystartprojectmysite


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

pythonmanage.pyrunserver

获得输出如下内容:

January28,2015-12:48:43
Djangoversion1.7.3,usingsettings'mysite1.settings'
Startingdevelopmentserverathttp://127.0.0.1:8000/QuittheserverwithCONTROL-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所配置的数据库中创建必要的数据库表

pythonmanage.pysyncdb


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

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

pythonmanage.pystartapppolls


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

6.在modles中写入

classPoll(models.Model):
question=models.CharField(max_length=200)
pub_date=models.DateTimeField('datepublished')
def__unicode__(self):
returnself.question

classChoice(models.Model):
poll=models.ForeignKey(Poll)
choice_text=models.CharField(max_length=200)
votes=models.IntegerField(default=0)
def__unicode__(self):
returnself.choice_text

classPublisher(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插入到数据库中

$pythonmanage.pysyncdb#wrong!becauseofmigraition
ues:
$pythonmanage.pymakemigrate
$pythonmanage.pymigrate


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

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

fromdjango.contribimportadmin

#Registeryourmodelshere.
frompolls.modelsimportPoll,Publisher,Choice

classAuthorAdmin(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管理工具就而已运行,启动开发服务器

pythonmanage.pyrunserver


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

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

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

通过databaseAPI来浏览数据

pythonmanage.pyshell


>>>frompolls.modelsimportPoll,Choice
#系统中还没有Poll
>>>Poll.objects.all()
[]
#创建一个poll对象
>>>fromdjango.utilsimporttimezone
>>>p=Poll(question="What'snew?",pub_date=timezone.now())
#保存到数据库中必须调用save()方法
>>>p.save()
>>>p.id
1L
>>>p.question
"What'snew?"
>>>p.pub_date
datetime.datetime(2015,1,28,14,41,13,272036,tzinfo=<UTC>)
#更改数据再save
>>>p.question="What'sup"
>>>p.save()

#显示数据库中所有的poll通过objects.all()函数
>>>Poll.objects.all()
[<Poll:What'sup>]
>>>


自定义管理表单,在admin.py中设置,可以是黑色之不同的显示顺序和,大小框标题

classPollAdmin(admin.ModelAdmin):
#fields=['pub_date','question']
fields=[
(None,{'fields':['question']}),
('Dateinformation',{'fields':['pub_date']}),
]

admin.site.register(Poll,PollAdmin)

添加关联的对象:

classChoiceInline(admin.StackedInline):
model=Choice
extra=3


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




admin.site.register(Poll,PollAdmin)


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: