写在前面
经过一个暑假的学习摸索和实践,呆萌(chun)如我,也已经对数据库有了粗浅的认识,掌握了MySQL一些简单的操作。然而毕竟只是新手,很多时候都是走一步算一步,并没有很系统地整理学到的知识。正好明哥吩咐,我就把这段时间学会的没学会的记录整理成博客,以待他日查阅复习(zhuang B)。
MySQL的安装
想使用MySQL,安装是必不可少的。由于年代久远,本人安装的个中曲折已无从考证。其实用几个命令行就能完成。
sudo apt-get install mysql-server
apt-get install mysql-client
sudo apt-get install libmysqlclient-dev
此外还要安装MySQLdb插件,在终端输入命令行如下:
sudo apt-get install python-mysqldb
这样就大功告成啦,可以进入到下一步数据库的使用。
数据库的使用
安装好数据库后,我们可以开始使用数据库啦,打开终端输入
mysql -u root -p (其中root为用户名,一般默认为root)
按下回车键,会要求你输入密码(在安装数据库时输入的密码)成功连接数据库服务器后会看到这个界面。
这时候你已经连接上到数据库服务器了,可以进行下一步操作。
注意:在数据库中使用命令行时,都要以“;”结尾来表示已输入一个完整的指令,此时按下回车键,则执行相应命令。
我们现在来建一个数据库,输入命令行
create database d_name;
其中d_name为你起地数据库名称。这时你已经建好一个数据库了!用命令行
show databases;
可以看到你已建的所有数据库。
注意:由于编码问题,在建好一个新的数据库后应输入命令行
alter database d_name character set utf8 collate utf8_general_ci;
则可解决中文乱码的问题。
数据库建好后,要使用数据库时,需先进入到数据库中,使用命令行
use d_name;
如果要新建一个表格,可输入命令行
create table t_name(column_1 char(n),column_2 char(n));
其中,t_name是表格名,column_1是列1的名字,char是该列的数据类型,n是一个具体数字,以此类推,可以增加多个列。输入
show tables;
可以看到建好的表格。
注意:数据类型一般有char和varchar,当需要输入中文而建库时又没有解决乱码时,可将数据类型设为nchar或nvarchar
数据库一些常用的语句如有需要,去网上找也很方便,这里不赘述。
在Django中使用MySQL
当我们想把把Django中的数据存进MySQL时,就要把数据库和Django做链接。在Django的setting里,修改如下配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'd_name',
'USER': 'root',
'PASSWORD': '密码',
'HOST': '',
'PORT': '3306',
}
}
注意:其中,d_name是你想连接的数据库的名字,密码是你进入数据库的密码,HOST一般悬空,默认为本地或改为“localhost”,PORT一般为3306.
为了方便后面的工作,我们在这里新建一个应用,在终端输入
python manage.py startapp app_name
注意:要在setting里注册这个app,如下
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app_name',
)
完成这些之后,我们进入到app里的models,通过用模块建表格的方法,帮助我们将后台中的数据导入到MySQl中。例子如下:
#coding:utf-8
#!/usr/bin/python
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project_name.settings")
from django.db import models
class Text(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
def __unicode__(self):
return self.title,self.content
在这个例子中,我们建了这样一个表格,除了自动生成的id索引,另外两项是我们在类text中定义的title和content,其中CharField是字符类型,最大长度是100,TextField是可用最大长度,相关的使用还需进一步学习。
注意:在使用models时,我们必须修改环境配置,在开头加入
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project_name.settings")
其中project_name需自己修改
写完模板后,我们就可以同步数据库了,在终端输入
python manage.py syncdb
根据提示一步步操作,就可以同步数据库,在数据库中建出模板所构造的表格了。当需要更新数据库时,在终端输入
python manage.py makemigrations
python manage.py migrate
即可完成同步,此时,数据库中我们需要的表格已经建好了,我们可以进入下一步的传数据了。
数据导入数据库
Django中有专门用于数据导入的objects语句,在需要传数据的脚本中导入models中的类,如
from app_name.models import class_name
然后使用objects语句,例如
Text.objects.create(title='具体内容',content='具体内容')
objects语句还可用于查询数据库等操作,常用有
class_name.objects.get(具体列名='具体内容')
class_name.objects.filter(具体列名='具体内容')
注意:两者的区别在于get方法没有匹配对象时会报错,filter方法没有匹配对象时会返回[ ]
总结
作为过来人,我也深刻地认识到,要想掌握更多数据库的使用方法,需要在实践中慢慢摸索,不断学习。越学习越能体会到自己的无知。就此搁笔。(毕竟我也累了,不想再写了。)