这几篇博客是根据GoodSpeed的博客该写的,看了他的博客收获很大,但是他的博客从第三篇开始,条理很不清晰,加之又是几年之前写的,编写环境发生很大改变,所以对他的博客进行了一个整理,加入了一些自己的东西。
我使用的是windows 7开发环境。
配置如下:
1.python 2.7.2
2.django 1.7.8
3. mysql 5.5
一.新建project
django-admin startproject web
生成目录如下:
web/ manage.py web/ __init__.py urls.py settings.py wsgi.py
运行服务器:
python manage.py runserver System check identified no issues (0 silenced). August 08, 2015 - 14:15:04 Django version 1.7.8, using settings 'web.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CTRL-BREAK.
如果出现以上输出说明运行服务器成功
二.新建app
在项目中打开cmd输入
python manage.py startapp blog
执行这条命令之后,在web项目下将生成一个blog文件文件夹,目录如下:
blog/ __init__.py admin.py models.py test.py views.py migrations/ __init__.py
三.配置数据库
打开settings.py文件,这里我们使用mysql,配置如下
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'blog', 'USER':'root', 'PASSWORD':'root', 'HOST':'', 'PORT':3306, } }
检查配置是否成功,在项目中打开python交互解释器,输入
>>>from django.db import connection >>>cursor = connection.cursor()
如果成功运行,说明配置正确,如果不成功,请重新检查
四.配置models
打开models.py文件
from django.db import models # Create your models here. class Tag(models.Model): tag_name = models.CharField(max_length = 20,blank=True) create_time = models.DateTimeField(auto_now_add = True) def __unicode__(self): return u'%s' %(self.tag_name) class Author(models.Model): name = models.CharField(max_length = 30) email = models.EmailField(blank = True) website = models.URLField(blank =True) def __unicode__(self): return u'%s' %(self.name) class Blog(models.Model): caption = models.CharField(max_length = 50) author = models.ForeignKey(Author) tags = models.ManyToManyField(Tag,blank = True) content = models.TextField() publish_time = models.DateTimeField(auto_now_add = True) update_time = models.DateTimeField(auto_now_add = True) def __unicode__(self): return u"%s %s %s " % (self.caption,self.author,self.publish_time)
检查模型的正确性,在cmd中输入
python manage.py validate
如果配置正确,输出将如下所示
F:web>python manage.py validate System check identified no issues (0 silenced).
如果出现问题,django会指出问题出在哪
同步数据库,执行以下命令:
python manage.py makemigrations
python manage.py migrate
python manage.py syncdb
这时django将在数据库blog中建立模型类中定义的数据表,在执行syncdb的时候,django会提示建立后台管理用户
运行服务器,打开127.0.0.1:8000/admin/
就可以使用后台管理了,但是这时,新建的blog并没没有出现,怎样才能让admin能管理blog了,需要配置admin.py文件。
from django.contrib import admin from blog.models import Author, Blog, Tag # Register your models here. class AuthorAdmin(admin.ModelAdmin): list_display = ('name','email','website') search_fields = ('name',) class BlogAdmin(admin.ModelAdmin): list_display = ('caption','id','author', 'publish_time') list_filter = ('publish_time',) admin.site.register(Author, AuthorAdmin) admin.site.register(Blog, BlogAdmin) admin.site.register(Tag)
这样,就可以使用admin管理blog了。完整界面如下: