当前位置:Gxlcms > 数据库问题 > django与mysql交互

django与mysql交互

时间:2021-07-01 10:21:17 帮助过:23人阅读

查看ubuntu已安装的所有软件:

  1. dpkg -l  
  2. dpkg -l | grep mysql


查看软件安装的路径

  1. dpkg -L | grep mysql


查看开机启动的软件,需要额外安装插件:

  1. sudo apt-get install rcconf
  2. rcconf
  3. 更能全一点的:
  4. sudo apt-get install sysv-rc-conf
  5. sysv-rc-conf


安装mysql:

  1. # apt-get install python-setuptools libmysqld-dev libmysqlclient-dev 
  2. # easy_install mysql-python
  3. 或者 #pip install mysql-python



django setting配置:

  1. DATABASES = {
  2.     ‘default‘: {
  3.         ‘ENGINE‘: ‘django.db.backends.mysql‘, 
  4.         ‘NAME‘: ‘books‘,    #你的数据库名称
  5.         ‘USER‘: ‘root‘,   #你的数据库用户名
  6.         ‘PASSWORD‘: ‘‘, #你的数据库密码
  7.         ‘HOST‘: ‘‘, #你的数据库主机,留空默认为localhost
  8.         ‘PORT‘: ‘3306‘, #你的数据库端口
  9.     }
  10. }


在model模块中添加如下建表语句:

  1. from django.db import models
  2. # Create your models here.
  3. class publisher(models.Model):
  4. name=models.CharField(max_length=30)
  5. address=models.CharField(max_length=50)
  6. city=models.CharField(max_length=60)
  7. state_province=models.CharField(max_length=30)
  8. county=models.CharField(default="CN",max_length=50)
  9. website=models.URLField()
  10. class author(models.Model):
  11. first_name=models.CharField(max_length=30)
  12. last_name=models.CharField(max_length=40)
  13. email=models.EmailField(blank=True)
  14. class book(models.Model):
  15. title=models.CharField(max_length=100)
  16. authors=models.ManyToManyField(author)
  17. publisher=models.ForeignKey(publisher)
  18. publication_date=models.DateField()

django会把上面这些自动改成sql语句。



python manage.py validate   #测试上面的语句是否有问题。

python manage.py sqlall app   #把上面的内容生成sql语句。

  1. 运行上面这条命令出现的错误:
  2. CommandError: App ‘app‘ has migrations. Only the sqlmigrate and sqlflush commands can be used when an app has migrations.
  3. 解决:
  4. 删除app中migrations文件夹。


python manage.py syncdb  #把这些语句写入数据库中。

#选yes建立数据库后台管理的账号和密码。

#如果这步跳过了,则执行:

  1. python manage.py createsuperuser  #创建用户
  2. python manage.py changepassword   #更改密码



#练习在python交互模式下操作数据库:

  1. ./manage.py shell              #进入django变量的交互器
  2. from app.models import publisher #导入publisher数据库。


#插入一条数据:

  1. p1=publisher(name=‘qinghua university‘,address=‘wudaokou‘,city=‘beijing‘,state_province=‘beijing‘,county=‘china‘,website=‘www.qinghua.com‘)

p1.name    #查看插入的name

p1.address  #查看插入的address

p1.save()   #插入的数据写入数据库中


#更新一条数据:

  1. p1.address="qinghualu"
  2. p1.save()



#查看所有的数据

在models模块中,建表语句下面添加如下:

  1. def __unicode__(self):
  2. return self.name,self.address

然后再去交换窗口查看所有数据:

  1. publisher.objects.all()


#查询国家等于中国的一条数据:

  1. publisher.objects.filter(country="china")


#查询出来的数据进行更改:

  1. a=publisher.objects.get(name="beijing daxue")
  2. a.county="USA"
  3. a.save()


#高效的更新数据方式,并且无需save:

  1. publisher.objects.filter(id=1).update(name="qingdaodaxue")



#在浏览器中打开后台管理数据库界面:

http://192.168.110.106/admin/


账号就是同步数据库时创建的用户名和密码,登陆进去。

在app下创建一个admin.py的文件

vi admin.py

  1. from django.contrib import admin
  2. from app.models import publisher,author,book
  3. admin.site.register(publisher)
  4. admin.site.register(author)
  5. admin.site.register(book)

完成后,重新打开页面。



#django中引用bootstrap:

在setting.py中:

MEDIA_ROOT=‘/root/project/statics/bootstrap/‘


在url.py中:

from django.conf import settings


django与mysql交互

标签:用户名   数据库   ubuntu   setting   default   

人气教程排行