有些地方不对的话欢迎大家指正!
开发工具用的是Aptana Studio2.0具体如何安装并新建一个django项目和
如何配置数据库就不介绍了
完成后我的路径:
目录结构
1.首先是数据库建模
这里为了方便使用的是Sqllit3数据库,django可以通过modles逆向到数据库
先写models.py”’
#用户列表,这个我还没用到 class Users(models.Model): #相当于varchar字符类型 uname=models.CharField(verbose_name='用户名',max_length=25) pwd=models.CharField(verbose_name='密码',max_length=12) sex=models.CharField(verbose_name='性别',choices=(("M","男"),("F","女")),max_length=1) email=models.CharField(max_length=25) last_login_ip=models.IPAddressField(verbose_name='最后登录IP') last_login_date=models.DateTimeField(verbose_name='最后登录日期') #重载meta模块,修改Admin后台中显示的名称 class Meta: verbose_name = '用户' verbose_name_plural = '用户列表' def __unicode__(self): return self.uname
#文章类型列表 class EssayType(models.Model): id=models.AutoField('id',primary_key=True) #相当于varchar字符类型,最大长度25 tname=models.CharField( verbose_name='文章类名',max_length=25) baseType=models.ForeignKey('self','id', null=True, blank=True, verbose_name='所属类别') #重写Meta模块,修改在管理后台中的显示名称 class Meta: verbose_name = '文章类型' verbose_name_plural = '文章类型列表' #按名称排序 ordering = ['tname'] def __unicode__(self): return self.tname #文章列表,verbose_name就是等下再后台中字段的名称 class Essay(models.Model): eType=models.ForeignKey(EssayType, verbose_name='所属类别') title=models.CharField(max_length=25, verbose_name='文章标题') content=models.TextField(max_length=2000, verbose_name='文章内容') abstract=models.TextField(max_length=150, verbose_name='文章摘要') pub_date=models.DateTimeField( verbose_name='发表日期') view_count=models.IntegerField( verbose_name='浏览次数',default=0) class Meta: verbose_name = '文章' verbose_name_plural = '文章列表' #按时间排序 ordering = ['-pub_date'] def __unicode__(self): return self.title #回复列表 class Comment(models.Model): uname=models.CharField(max_length=25, verbose_name='回复者名称') email=models.EmailField(max_length=25, verbose_name='回复者Email') content=models.TextField(max_length=200, verbose_name='回复内容') pub_date=models.DateTimeField( verbose_name='回复日期') essay=models.ForeignKey(Essay, related_name='essay_comment') class Meta: verbose_name = '回复' verbose_name_plural = '回复信息列表' def __unicode__(self): return self.uname #留言信息表 class LevelMsg(models.Model): uname=models.CharField(max_length=25, verbose_name='留言者名称') content=models.TextField(max_length=200, verbose_name='留言内容') email=models.EmailField(max_length=25, verbose_name='留言者Email') class Meta: verbose_name = '留言板' verbose_name_plural = '留言信息列表' def __unicode__(self): return self.uname #博客存档记录 class Archive(models.Model): essay=models. ForeignKey(Essay,related_name='archive_essay') pub_date=models. DateTimeField(verbose_name='存档日期') class Meta: verbose_name = '存档信息' verbose_name_plural = '存档信息列表' def __unicode__(self): return str(self.pub_date)+"("+self.essay.title+")"
”’python manage.py syncdb同步数据库,Sqlite数据库中会自动的建立一些表
Python manage.py sqlall core[你的app名称,我的叫core
建立好数据库,核心功能就完成了一大半了,在下一篇中介绍 如何制作管理后台
源代码下载地址(代码是去年的某个版本,可能有些地方和文中有些不同)