首先,由于我们这里要连接的是mysql数据库,所以这里我们先在settings中更改对应的设置:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'blogdb',
'USER': 'root',
'PASSWORD':'XXXXXXXX',
'HOST':'127.0.0.1',
'PORT':'3306',
}
}
更改database中数据库的名称,并配置端口。
其次要在model中创建对应的关系表,即你的网站有哪些数据,需要进行建模。
from __future__ import unicode_literals from django.db import models class Article(models.Model): title = models.CharField(u"博客标题", max_length=100,) # 博客标题 category = models.CharField(u"博客标签", max_length=50, blank=True) # 博客标签 pub_date = models.DateTimeField(u"发布日期", auto_now_add=True, editable=True) # 博客发布日期 update_time = models.DateTimeField(u'更新时间', auto_now=True, null=True) #博客更新日期 content = models.TextField(blank=True, null=True) # 博客文章正文 def __unicode__(self): return self.title class Meta: # 按时间下降排序 ordering = ['-pub_date'] verbose_name = "文章" verbose_name_plural = verbose_name
我这里就写了一个常见的Article表,比如以后想要评论功能的话,可以写一个新的类。
此时,如果直接启动项目,会提示Error loading MySQLdb module.在查询资料之后发现,Mysqldb只支持python2.*,还不支持3.*。这里可以用PyMySQL代替。安装完成后,在setting的同级目录的__init__.py中调用PyMySQL即可:
import pymysql pymysql.install_as_MySQLdb()
这里就是对数据库的操作,如果要连接数据库,修改数据库中的表,可以写入sql语句,具体操作如下:
#打开数据库连接 db = pymysql.connect('localhost','root','mydmayday1314','blogdb') #使用cursor方法获取操作游标 cursor = db.cursor() #使用execute方法执行sql语句 cursor.execute("SELECT VERSION()") #使用fetchone方法获取一条数据库 data = cursor.fetchone() print("Database version: %s " %data) #关闭数据库连接 db.close()
这时,我们就可以import MySQLdb了。接着启用命令行工具,首先创建超级用户:createsuperuser,设置用户名,邮箱,密码。接着使用migrate来迁移数据库(感觉这里起类似刷新的作用,在python2中好像是用syscdb来操作),之后要添加对应的url访问,也就是admin这个页面(之前不小心把admin这一行注释掉了,导致一直打不开admin页面,这里引以为戒)
urlpatterns = [
path('admin/', admin.site.urls),
path(r'index/',index)
]
最后,用runserver命令就可以了。进入admin页面之后,由于之前在setting的app中调用溜了bootstrap-admin这个库,并进行了调用。于是登录界面蛮好看的。。
登入之后添加文章,并测试。
发现在数据库成功添加:
完成!!!