用Django写博客(一)数据建模

转载注明出处

http://blog.csdn.net/xugangjava

有些地方不对的话欢迎大家指正!
开发工具用的是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

建立好数据库,核心功能就完成了一大半了,在下一篇中介绍 如何制作管理后台


用Django写博客(二)建立管理后台


源代码下载地址(代码是去年的某个版本,可能有些地方和文中有些不同)

http://download.csdn.net/detail/xugangjava/4237018


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值