django与mysql交互

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

dpkg -l  
dpkg -l | grep mysql

查看软件安装的路径

dpkg -L | grep mysql

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

sudo apt-get install rcconf
rcconf

更能全一点的:
sudo apt-get install sysv-rc-conf
sysv-rc-conf

安装mysql:

# apt-get install python-setuptools libmysqld-dev libmysqlclient-dev 
# easy_install mysql-python
或者 #pip install mysql-python

django setting配置:

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

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

from django.db import models
# Create your models here.
class publisher(models.Model):
name=models.CharField(max_length=30)
address=models.CharField(max_length=50)
city=models.CharField(max_length=60)
state_province=models.CharField(max_length=30)
county=models.CharField(default="CN",max_length=50)
website=models.URLField()
class author(models.Model):
first_name=models.CharField(max_length=30)
last_name=models.CharField(max_length=40)
email=models.EmailField(blank=True)
class book(models.Model):
title=models.CharField(max_length=100)
authors=models.ManyToManyField(author)
publisher=models.ForeignKey(publisher)
publication_date=models.DateField()

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

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

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

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

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

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

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

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

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

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

#插入一条数据:

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()   #插入的数据写入数据库中

#更新一条数据:

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

#查看所有的数据

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

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

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

publisher.objects.all()

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

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

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

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

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

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

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

http://192.168.110.106/admin/

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

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

vi admin.py

from django.contrib import admin
from app.models import publisher,author,book
admin.site.register(publisher)
admin.site.register(author)
admin.site.register(book)

完成后,重新打开页面。

#django中引用bootstrap:

在setting.py中:

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

在url.py中:

from django.conf import settings

时间: 2025-01-13 12:37:28

django与mysql交互的相关文章

Django项目与mysql交互进行数据迁移时报错:AttributeError: 'str' object has no attribute 'decode'

问题描述 Django项目启动,当我们执行命令 python manage.py makemigrations 出现如下错误: File "/usr/local/lib/python3.6/dist-packages/django/db/backends/mysql/operations.py", line 147, in last_executed_query query = query.decode(errors='replace') AttributeError: 'str' o

Django Python MySql 问题集锦

问题 1: raise ImproperlyConfigured("settings.DATABASES is improperly configured. " django.core.exceptions.ImproperlyConfigured: settings.DATABASES is improperly configured. Please supply the ENGINE value. Check settings documentation for more deta

django使用mysql (本地环境下)

本博文事例使用的django版本是1.4.0(最近在使用sae,没办法,只好从1.7.1撤了回来).不过原理大概都是相仿的吧. django支持多种数据库管理工具,如mysql, postgresql, sqlite, 和oracle.其中sqlite是内置在python中的,所以如果使用sqlite的话,就不必进行相关配置,尽情地使用python来管理即可,当 然也就不用看本博文了. 本博文就以mysql为例,来演示 “本地环境下 (与云环境对应),django使用mysql的步骤”  (首先

Shell基础:Shell和Mysql交互

通过命令行和Mysql交互 [root]#mysql -uroot -p123 -e "show databases"   -e: execute: 执行数据库命令 通过脚本和数据库进行交互,sql一定要用""引起来表示执行语句 #!/bin/bash #mysql.sh mysql="/usr/local/mysql/bin/mysql -uroot -p123" sql="show databases" $mysql -e

Hadoop集群(第10期)_MapReduce与MySQL交互

2.MapReduce与MySQL交互 MapReduce技术推出后,曾遭到关系数据库研究者的挑剔和批评,认为MapReduce不具备有类似于关系数据库中的结构化数据存储和处理能力.为此,Google和MapReduce社区进行了很多努力.一方面,他们设计了类似于关系数据中结构化数据表的技术(Google的BigTable,Hadoop的HBase)提供一些粗粒度的结构化数据存储和处理能力:另一方面,为了增强与关系数据库的集成能力,Hadoop MapReduce提供了相应的访问关系数据库库的编

django 的mysql数据配置

原地址:http://blog.csdn.net/gamesofsailing/article/details/21465327 在成功安装python-mysql后,开始配置django的mysql连接配置 打开django项目下的setting.py文件,将DATABASES改成下面这样 DATABASES = { 'default': { 'ENGINE':'django.db.backends.mysql', 'NAME':'mysite', 'USER':'root', 'PASSWO

Django syncdb mysql error on localhost -> (1045, "Access denied for user 'ODBC'@'localhost')

环境:WINDOWS系统 将数据库配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'HOST': 'localhost', 'PORT': 3306, 'NAME': 'yunwei', 'USERNAME': 'root', 'PASSWORD': 'mysql', } } 改为 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql',

Django中MySQL读写分离技术

最近需要用到Django的MySQL读写分离技术,查了一些资料,把方法整理了下来. 在Django里实现对MySQL的读写分离,实际上就是将不同的读写请求按一定的规则路由到不同的数据库上(可以是不同类型的数据库),我们需要做的就是,定义不同的数据库,定义不同的路由规则. 首先定义我们的主从数据库: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': sae.const.MYSQL_DB, 'USER':

django配置mysql数据库

安装完python后,安装python-mysql来连接mysql数据库,下载地址http://sourceforge.net/projects/mysql-python/,安装很简单,点下一步就可以了,不过要装和你python版本相对应的版本,否则比较蛋疼 安装完成后,配置下django的数据库连接,打开项目的配置文件settings.py,修改DATABASES参数 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql'