Django学习之三(连接数据库咯)

首先,由于我们这里要连接的是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这个库,并进行了调用。于是登录界面蛮好看的。。

登入之后添加文章,并测试。

发现在数据库成功添加:

完成!!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值