Python 网站 2 建立模型 建立工具包在构建网站的时候,免不了需要一些自定义工具,比如生成Guid之类的。我们新建一个包 tools,在tools下建立文件 webTools.py,内容如下:import osimport base64import redef GetRndStr(): rndByte = os.urandom(6) b64Str = base64.urlsafe_b64encode(rndByte) return b64Strdef RemoveHttpStr(val): return re.sub('<[^>]*>|&[^;]*;', '', val)def CutStringSafe(strIn,length): if length > len(strIn): return strIn else: return strIn[0:length]建立数据模型django中,会根据我们的模型自动引起对数据库的操作,所以,我们不需要直接操作数据库,而是以更面向对象的方法,和模型打交道。此时,修改models.py,添加代码:from __future__ import unicode_literalsfrom django.db import modelsimport toolsclass BlogPost(models.Model): guid = models.CharField(max_length=15,primary_key=True) author = models.CharField(max_length=150) title = models.CharField(max_length=150) body = models.TextField() category = models.CharField(max_length=150) timestamp = models.DateTimeField() def save(self, *args, **kwargs): if self.guid == "": self.guid = tools.webTools.GetRndStr() #do_something() super(BlogPost, self).save(*args, **kwargs) # Call the "real" save() method.在上面,我们用自定义的Guid作为ID,如果我们不指定primary key,那django会自动生成一个ID字段。并且,我们覆盖了django的原生save函数,用来处理我们的guid。此时,把settings.py中做一些修改,添加我们的app - blog。INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'blog',]然后运行下面的代码:./manage.py makemigrations #如果是第一次需要建立映射./manage.py migrate 来自 大脸猫 写于 2016-08-12 22:37 -- 更新于2020-10-19 13:06 -- 0 条评论