Django架构编写个人博客(二)数据库(Mysql)的使用与后台添加富文本编辑器

       Django自带的数据库是sqlite3,如果数据量小,sqlite3足以胜任,但对于一些大的数据库,就比较需要Mysql了。

       以博客为例,我要建立一个名为MyBlog的数据库,首先你的电脑里安装了Mysql,然后在Mysql里建立名为MyBlog的数据库,此时里面什么都没有。然后打开项目的settings.py,找到下面的代码:

DATABASES = {
    'default': {
    'ENGINE': 'django.db.backends.sqlite3',
    'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
    }

  

修改为:

DATABASES = {
    'default': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME': 'MyBlog',
    'USER': 'root',
    'PASSWORD': '******',  #填上数据库的密码
    'HOST': '127.0.0.1',
    'PORT': '3306',
    }
    }

  

还有,需要修改一下时间设置,不然你会发现时间总会慢几个小时,顺便改一下默认语言吧,默认设置如下:

LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'

修改为:
LANGUAGE_CODE = 'zh-hans'  #语言设置为中文
TIME_ZONE = 'Asia/Shanghai'  #时间设置为上海


接着把富文本编辑器导入项目,我使用的是DjangoUeditor,直接用pip下载就OK了,同样需要在settings.py中注册。
下面我新建一个app,运行命令:django-admin startapp blog #不要忘了在settings.py注册
在blog的models.py中修改如下:

 

from DjangoUeditor.models import UEditorField  #引入富文本编辑器

class Article(models.Model):

  category = (
  ('code','代码记录'),
  ('life','生活感悟'),
  )
  title = models.CharField('标题',max_length=256)  
  content = UEditorField('内容',toolbars="full", imagePath="static/img/", filePath="static/img/", upload_settings={"imageMaxSize":1204000},
  settings={},)      #使用富文本编辑器
  abstract = models.CharField('摘要',max_length=256,null=True,blank=True)
  article_cate = models.CharField('类别',max_length=5,choices=category,default=study)
  pub_date = models.DateTimeField('发表时间', auto_now_add=True, editable = True)
  update_time = models.DateTimeField('更新时间',auto_now=True, null=True)
  views = models.PositiveIntegerField(default=0)

 

  

接下来进行数据库的迁移,运行命令:

python manage.py makemigrations

python manage.py migrate

  

 

打开数据库就会发现里面自动添加了很多表,很多都是Django自带的,我们只需要知道我们写的表格是哪个。

接下来就是在后台嵌入富文本编辑器了,打开blog的admin.py,修改如下:

from .models import Article    #引入Article模型

class ArticleAdmin(admin.ModelAdmin):
  list_display = ('title','pub_date','update_time',)

admin.site.register(Article,ArticleAdmin)

  

然后进入http://127.0.0.1:8000/admin,你会发现Article已经添加入其中了,其实Django替我们做了很多事,比如富文本编辑器是怎么渲染到页面上的,数据是怎么传输的,

以后再说怎么在网页上嵌入富文本编辑器吧。

 

posted on 2018-02-26 22:24  Alex-zs  阅读(992)  评论(0编辑  收藏  举报

导航