django开发简易博客(一)

  这几篇博客是根据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了。完整界面如下:

 

posted @ 2015-08-08 15:03  楚狂人阿飞  阅读(263)  评论(0编辑  收藏  举报