Django与数据库交互
1. 生成Django框架:cmd->CD进入包含django-admin.py的文件执行django-admin.py startproject myprj。这样会在该文件夹下生成四个文件:__init__.py,manage.py, settings.py, urls.py
2.使用python生成一个sqlite3数据库
import sqlite3
sqlite3.connect('database/webblog.db')//注意:这里,如果database文件要存在(在python安装目录下).webblog如果不存在会自动生成。
3.配置数据库。修改settings.py,
DATABASE_ENGINE = 'sqlite3' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
DATABASE_NAME = r"C:\Python25\database\webblog.db" # Or path to database file if using sqlite3.
DATABASE_USER = '' # Not used with sqlite3.
DATABASE_PASSWORD = '' # Not used with sqlite3.
DATABASE_HOST = '' # Set to empty string for localhost. Not used with sqlite3.
DATABASE_PORT = '' # Set to empty string for default. Not used with sqlite3.
我使用的是sqlite3做后台数据库,所以这里DATABASE_ENGINE应为sqlite3, DATABASE_NAME要制定数据库的的绝对路径(相对路径我没试过,不知是否可以)。还有,这里,要把database这个文件夹设为所有人可写(在我的上一篇博文中有介绍如何修改该权限)。
4.进cmd,cd进包含manage.py的文件夹,例如:C:/..(省略)..> cd c:\python25\scripts\webblog(回车),然后输入python manage.py shell。此时会发现控制台编程>>>。输入from django.db import connection. 继续输入cur = connection.cursor()。如果此时无错误提示,说明你的数据库已经配置成功。
5. 退出shell.>>>ctrl+z(^z)
6. 创建一个新的应用。控制台输入:python manage.py startapp webblogapp。此时,会在当前文件夹内生成webblogapp文件夹。内共有4个文件__init__.py,models.py,tests.py, views.py
7. 使用models.py定义模型。修改models.py,加入如下代码:
from django.db import models
from django.contrib import admin
# Create your models here.
_list_per_page = 50
#其实这里定义的类就相当于是定义了两个表。最后可以看到它会生成两张表:webblogapp_User,webblogapp_person
#关于model的如何定义,推荐看下http://docs.djangoproject.com/en/dev/topics/db/models/
class User(models.Model):
username = models.CharField(max_length=20)
password = models.CharField(max_length=20)
nickname = models.CharField(max_length=30)
class person(models.Model):
GENDER_CHOICES = (
(u'M', u'Male'),
(u'F', u'Female'),
)
name = models.CharField(max_length=60)
gender = models.CharField(max_length=2, choices=GENDER_CHOICES)
8. 定义完模型后(数据库中的表),就需要安装模型。在settings.py中,修改如下:
INSTALLED_APPS = (
#'django.contrib.auth',
#'django.contrib.contenttypes',
#'django.contrib.sessions',
#'django.contrib.sites',
'webblog.webblogapp', #webblog是包含webblogapp的文件夹名,webblogapp是包含models.py的文件
)
9. 运行python manage.py sqlall webblogapp。生成表格。可以看出生成了两个表格webblogapp_user,webblogapp_person
10.将sql提交至数据库. 运行python manage.py syncdb。可以看出,这是生成了多张表格(我也不知道其他表格干嘛用的。。。)
11. 接下来,会要求你输入用户名,邮箱,密码之类的。照着输就OK了。
12. 进入shell。python manage.py shell.
>>> p = Person(name="Fred Flinstone", gender="M")
>>> p.save() //相当于在webblogapp_person中插入一行记录
>>> p.gender
u'M'
>>> p.get_gender_display()
u'Male'
2.使用python生成一个sqlite3数据库
import sqlite3
sqlite3.connect('database/webblog.db')//注意:这里,如果database文件要存在(在python安装目录下).webblog如果不存在会自动生成。
3.配置数据库。修改settings.py,
DATABASE_ENGINE = 'sqlite3' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
DATABASE_NAME = r"C:\Python25\database\webblog.db" # Or path to database file if using sqlite3.
DATABASE_USER = '' # Not used with sqlite3.
DATABASE_PASSWORD = '' # Not used with sqlite3.
DATABASE_HOST = '' # Set to empty string for localhost. Not used with sqlite3.
DATABASE_PORT = '' # Set to empty string for default. Not used with sqlite3.
我使用的是sqlite3做后台数据库,所以这里DATABASE_ENGINE应为sqlite3, DATABASE_NAME要制定数据库的的绝对路径(相对路径我没试过,不知是否可以)。还有,这里,要把database这个文件夹设为所有人可写(在我的上一篇博文中有介绍如何修改该权限)。
4.进cmd,cd进包含manage.py的文件夹,例如:C:/..(省略)..> cd c:\python25\scripts\webblog(回车),然后输入python manage.py shell。此时会发现控制台编程>>>。输入from django.db import connection. 继续输入cur = connection.cursor()。如果此时无错误提示,说明你的数据库已经配置成功。
5. 退出shell.>>>ctrl+z(^z)
6. 创建一个新的应用。控制台输入:python manage.py startapp webblogapp。此时,会在当前文件夹内生成webblogapp文件夹。内共有4个文件__init__.py,models.py,tests.py, views.py
7. 使用models.py定义模型。修改models.py,加入如下代码:
from django.db import models
from django.contrib import admin
# Create your models here.
_list_per_page = 50
#其实这里定义的类就相当于是定义了两个表。最后可以看到它会生成两张表:webblogapp_User,webblogapp_person
#关于model的如何定义,推荐看下http://docs.djangoproject.com/en/dev/topics/db/models/
class User(models.Model):
username = models.CharField(max_length=20)
password = models.CharField(max_length=20)
nickname = models.CharField(max_length=30)
class person(models.Model):
GENDER_CHOICES = (
(u'M', u'Male'),
(u'F', u'Female'),
)
name = models.CharField(max_length=60)
gender = models.CharField(max_length=2, choices=GENDER_CHOICES)
8. 定义完模型后(数据库中的表),就需要安装模型。在settings.py中,修改如下:
INSTALLED_APPS = (
#'django.contrib.auth',
#'django.contrib.contenttypes',
#'django.contrib.sessions',
#'django.contrib.sites',
'webblog.webblogapp', #webblog是包含webblogapp的文件夹名,webblogapp是包含models.py的文件
)
9. 运行python manage.py sqlall webblogapp。生成表格。可以看出生成了两个表格webblogapp_user,webblogapp_person
10.将sql提交至数据库. 运行python manage.py syncdb。可以看出,这是生成了多张表格(我也不知道其他表格干嘛用的。。。)
11. 接下来,会要求你输入用户名,邮箱,密码之类的。照着输就OK了。
12. 进入shell。python manage.py shell.
>>> p = Person(name="Fred Flinstone", gender="M")
>>> p.save() //相当于在webblogapp_person中插入一行记录
>>> p.gender
u'M'
>>> p.get_gender_display()
u'Male'
----David Cai08-08-19午于金山公司