用Django寫部落格(一)資料建模
阿新 • • 發佈:2018-12-30
轉載註明出處
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
建立好資料庫,核心功能就完成了一大半了,在下一篇中介紹 如何製作管理後臺
原始碼下載地址(程式碼是去年的某個版本,可能有些地方和文中有些不同)