win+pycharm+django+mysql开发(win系统pythonweb开发)(二)
2016-11-22 14:17
661 查看
昨天主要讲了框架的搭建和简单的例子,
今天接着昨天的,讲解django中结合数据库
一:添加[b]MySQLdb[/b]
如果工程中需要用到mysql数据库,则需要对应的包,如果没有安装此包,则在交互模式下执行命令 import MySQLdb ,会报错 No module named MySQLdb
安装的方式有很多种,这里我用的是下载安装,地址是http://www.codegood.com/archives/129,下载MySQL-python 1.2.3 for Windows and Python 2.7, 32bit and 64bit versions,然后安装即可,没啥技巧。
安装完之后执行命令
没有报错,表示安装成功,继续!
二:修改配置文件
修改settings.py中的 DATABASES
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'db_amdin',
'USER': 'root',
'PASSWORD': 'root#*132222',
'HOST': '192.168.1.112',
'PORT': '3306',
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
我们测试下配置是否正确,交互模式下输入代码
发现报错了,额,难道是配置的不正确,nonono,原来进入shell交互界面的方式不对,应该进入的是项目的shell交互才能获取到配置文件
三:修改model.py
注意:不要定义id,要不然启动的时候会报错:report.Person: (models.E004) 'id' can only be used as a field name if the field also sets 'primary_key=True'.,因为django本身的命令会冲突(待会儿就知道了)
四:执行数据库同步命令
因为django版本的问题,执行python manage.py syncdb命令并没有什么效果,反而报错
改用
python manage.py makemigrations
Python manger.py makemigrations
相当于 在该app下建立 migrations目录,并记录下你所有的关于modes.py的改动,比如0001_initial.py, 但是这个改动还没有作用到数据库文件
当然你可以手动打开这个文件,看看里面是什么
在此之后执行命令
python manager.py migrate
将该改动作用到数据库文件,比如产生table之类
当makemigrations之后产生了0001_initial.py 文件,你可以查看下该migrations会对应于什么样子的SQL命令
表示成功了
五:启动项目,查看数据库
我用的是linux下查看数据库,这个依个人情况而定,比如可以用远程工具访问数据库
我们看到了默认生成了 report_person (应用名_类名)表,然后我们看了一下字段,给我们自动加上了id字段,这下知道刚才定义类的时候不需要定义id了吧
补充:
启动工程的时候,报如下错,表示MySQLdb没有安装,可以查看下文章开头的说明
下一篇会讲解数据库操作(增删改查)
今天接着昨天的,讲解django中结合数据库
一:添加[b]MySQLdb[/b]
如果工程中需要用到mysql数据库,则需要对应的包,如果没有安装此包,则在交互模式下执行命令 import MySQLdb ,会报错 No module named MySQLdb
安装的方式有很多种,这里我用的是下载安装,地址是http://www.codegood.com/archives/129,下载MySQL-python 1.2.3 for Windows and Python 2.7, 32bit and 64bit versions,然后安装即可,没啥技巧。
安装完之后执行命令
没有报错,表示安装成功,继续!
二:修改配置文件
修改settings.py中的 DATABASES
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'db_amdin',
'USER': 'root',
'PASSWORD': 'root#*132222',
'HOST': '192.168.1.112',
'PORT': '3306',
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
我们测试下配置是否正确,交互模式下输入代码
发现报错了,额,难道是配置的不正确,nonono,原来进入shell交互界面的方式不对,应该进入的是项目的shell交互才能获取到配置文件
三:修改model.py
from __future__ import unicode_literals from django.db import models class Person(models.Model): name = models.CharField(max_length=20) age = models.CharField(max_length=10)
注意:不要定义id,要不然启动的时候会报错:report.Person: (models.E004) 'id' can only be used as a field name if the field also sets 'primary_key=True'.,因为django本身的命令会冲突(待会儿就知道了)
四:执行数据库同步命令
因为django版本的问题,执行python manage.py syncdb命令并没有什么效果,反而报错
改用
python manage.py makemigrations
Python manger.py makemigrations
相当于 在该app下建立 migrations目录,并记录下你所有的关于modes.py的改动,比如0001_initial.py, 但是这个改动还没有作用到数据库文件
当然你可以手动打开这个文件,看看里面是什么
在此之后执行命令
python manager.py migrate
将该改动作用到数据库文件,比如产生table之类
当makemigrations之后产生了0001_initial.py 文件,你可以查看下该migrations会对应于什么样子的SQL命令
表示成功了
五:启动项目,查看数据库
我用的是linux下查看数据库,这个依个人情况而定,比如可以用远程工具访问数据库
我们看到了默认生成了 report_person (应用名_类名)表,然后我们看了一下字段,给我们自动加上了id字段,这下知道刚才定义类的时候不需要定义id了吧
补充:
启动工程的时候,报如下错,表示MySQLdb没有安装,可以查看下文章开头的说明
下一篇会讲解数据库操作(增删改查)
相关文章推荐
- win+pycharm+django+mysql开发(win系统pythonweb开发)(三)
- win+pycharm+django+mysql开发(win系统pythonweb开发)(一)
- Pycharm+Django+Python+MySQL开发 后台管理数据库
- Pycharm+Django+Python+MySQL开发 后台管理数据库
- Pycharm+Django+Python+MySQL开发(一)后台管理数据库
- Pycharm+Django+Python3.5+MySQL开发后台数据库
- 在Ubuntu系统上进行SAE+Python+Django开发记录—1.环境搭建
- Eclipse+PyDev+Django+Mysql搭建Python web开发环境
- 在ubuntu下搭建python开发环境(pycharm,postgresql,virtualenv, Django)
- 在Linux系统上部署Apache+Python+Django+MySQL环境
- Django + Python + MySQL 的开发与部署
- Eclipse+PyDev+Django+Mysql搭建Python web开发环境
- 在ubuntu下搭建python开发环境(pycharm,postgresql,virtualenv, Django)
- python之web开发1:Eclipse+PyDev+Django+Mysql搭建Python web开发环境
- Python学习笔记(3)——Django开发Web系统
- Python & PyCharm & Django 搭建web开发环境(续)
- Eclipse+PyDev+Django+Mysql搭建Python web开发环境
- Eclipse+PyDev+Django+Mysql搭建Python web开发环境
- Eclipse+PyDev+Django+Mysql搭建Python web开发环境
- 【Django】Python web开发:几个模板系统的性能对比(转)