您的位置:首页 > 编程语言 > Python开发

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
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没有安装,可以查看下文章开头的说明



下一篇会讲解数据库操作(增删改查)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息