发布网友 发布时间:2024-10-01 23:01
共1个回答
热心网友 时间:2024-10-08 08:27
导读:本篇文章首席CTO笔记来给大家介绍有关django怎么使用db文件的相关内容,希望对大家有所帮助,一起来看看吧。
django怎么使用本机mysql数据库step1:
修改你的djangoproject目录下的settings.py文件至如下所示:
其中,'NAME'对应的‘db_name'是你事先使用mysql
的命令行提示符创建的数据库名称。注意:在django使用数据库之前,你必须先创建出数据库,否则会报错。'USER'对应的'username'
还有'PASSWORD'对应的‘passwd'
就是你在mysql中创建的用户名和密码。如果你有多个的话,随便填一个就好。'HOST'和'PORT'默认都可以不填。
题外话:使用用户名和密码登录mysql的方法:
首先,你需要进入mysql/bin的目录下,也可以在.bash_profile中设置环境变量:
PATH=/usr/local/bin:/usr/bin:/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/local/Cellar/mysql/5.6.22/bin/
再在prompt输入mysql-uusername-p,回车后再输入passwd即可
step2:
然后,在manage.py路径中使用pythonmanage.pysyncdb试试,结果会提示你错误找不到MySQLdb这个module,为什么呢,因为pythonmanage.pysyncdb命令是这样工作的:
1.在project目录的settings.py的INSTALLED_APPS元组中找到可能需要更新的APP。
2.找到每一个APP目录中的models.py(关系定义文件),并针对变化在数据库中进行更新。
说了这么多,前面那个错误找不到moduleMySQLdb是什么意思啊?
先给个图,再解释:
因为在models.py中定义关系使用的是python,而真正在数据库中操作形成model当然一定要用sql语句,所以必须要有一些功能模块
来把python语句转化成sql语句。如果你使用sqlite的话,由于sqlite和转化模块都已经由python内置了,所以直接使用不会发生错
误。但是”mysql语句的转化模块“就需要你手动加载了,这些模块放在MySQL-python中。
我是使用pip安装的:
安装了之后,再使用pythonmanage.pysyncdb就OK啦。
我使用的系统是OSX,下面是mysql默认的安装路径
/usr/local/Cellar/mysql/5.6.22/
如果你想知道你的数据库文件是放在哪里的,你可以查看mysql_config文件中的ldata变量,这个变量的值就是默认的数据库文件夹存储的路径。我的系统中,mysql_config的完整路径是:
/usr/local/Cellar/mysql/5.6.22/bin/mysql_config
如何在DJANGO里,向有外键的DB里插入数据首先你需要建立django的对象模型
建立两个模型之间的关系表
将数据保存到关系表中。
如何独立使用django的数据库访问功能
1.安装Django
[plain]viewplaincopy
cdDjango-1.4
pythonsetup.pyinstall
2.安装postgresql的客户端:
[plain]viewplaincopy
sudoapt-getinstall-ypostgresql-client-9.1python-psycopg2
3.新建project:
[plain]viewplaincopy
django-admin.pystartprojectmyproject
4.在myproject下新建app:
[plain]viewplaincopy
pythonmanage.pystartappmyapp
4.新增环境变量:
编辑/etc/profile文件,在末尾加入以下语句:
[plain]viewplaincopy
spanstyle="color:#FF0000;"exportPYTHONPATH=$PYTHONPATH:/home/yc/src/myproject
exportDJANGO_SETTINGS_MODULE=myproject.settings/span
5.
假设数据库已经由Django的另一个应用(名称为otherapp)建好,数据库类型是postgresql,名称为mydb,位于
192.168.1.23。见好的数据库中有一个表,名称是otherapp_user,则将otherapp/models.py拷贝到myapp
/models.py。
注意检查models.py下的classuser类的classMeta:部分,如果没有applabel标签,则要加上:app_label='otherapp'
再修改/home/yc/src/myproject下的settings.py文件,如下:
[plain]viewplaincopy
DATABASES={
'default':{
'ENGINE':'django.db.backends.postgresql_psycopg2',#Add'postgresql_psycopg2','mysql','sqlite3'or'oracle'.
'NAME':'mydb',#'vps2db_test1'Orpathtodatabasefileifusingsqlite3.
'USER':'postgres',#Notusedwithsqlite3.
'PASSWORD':'123',#Notusedwithsqlite3.
'HOST':'192.168.1.23',#Settoemptystringforlocalhost.Notusedwithsqlite3.
'PORT':'5432',#Settoemptystringfordefault.Notusedwithsqlite3.
}
}
[plain]viewplaincopy
INSTALLED_APPS=(
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'spanstyle="color:#FF0000;"myapp/span',
)
6.在myapp目录下编写测试程序
[python]viewplaincopy
frommodelsimportuser
if__name__=="__main__":
try:
u=user.objects.get(id=user_id)
exceptuser.DoesNotExist:
print"usernotexist)
returnNone
else:
returnu
结语:以上就是首席CTO笔记为大家介绍的关于django怎么使用db文件的全部内容了,希望对大家有所帮助,如果你还想了解更多这方面的信息,记得收藏关注本站。