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替我们做了很多事,比如富文本编辑器是怎么渲染到页面上的,数据是怎么传输的,
以后再说怎么在网页上嵌入富文本编辑器吧。