首页 > 数据库 >django 命令行方式使用model建数据库

django 命令行方式使用model建数据库

时间:2022-11-11 12:01:21浏览次数:40  
标签:name models py django length books 命令行 model


提前建立好项目根目录mysite,cd到mysite里面,使用如下命令创建一个名为FirstSql的项目:

python django-admin.py startproject FirstSql


再cd到FirstSql下面,构建一个app,这个app用于创建model,进而构建数据库。命令如下:

python manage.py startapp books


这样会在FirstSql项目里面创建一个books的文件夹,里面的文件如下图:

django 命令行方式使用model建数据库_django

我们所要编辑的就是models.py文件,用Sublime打开这个文件,输入如下代码:

from django.db import models

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)
country = models.CharField(max_length=50)
website = models.URLField()
def __unicode__(self):
return self.name

class Author(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=40)
email = models.EmailField()
def __unicode__(self):
return u'%s %s' % (self.first_name, self.last_name)

class Book(models.Model):
title = models.CharField(max_length=100)
authors = models.ManyToManyField(Author)
publisher = models.ForeignKey(Publisher)
publication_date = models.DateField()
def __unicode__(self):
return self.title

每一个class都对应数据库中的一张表,他们都继承自Model类。每一个class定义结束后,是一个unicode函数,功能类似于java对象的toString方法。

这样models.py创建完毕。


下面安装模型:

先来对项目进行数据库的配置,打开FirstSql下面的settings.py,编辑INSTALLED_APPS变量,如下:

INSTALLED_APPS = (
#'django.contrib.auth',
#'django.contrib.contenttypes',
#'django.contrib.sessions',
#'django.contrib.sites',
#'django.contrib.messages',
#'django.contrib.staticfiles',
# Uncomment the next line to enable the admin:
# 'django.contrib.admin',
# Uncomment the next line to enable admin documentation:
# 'django.contrib.admindocs',
'books',
)

这个变量的含义是指明项目中哪些app要被用到,被激活。很显然,我们这里设定的是books app。其余的app暂时不用。

这样的话还要修改MIDDLEWARE_CLASSES这个变量,全部注释掉,因为这个变量会用到INSTALLED_APPS里面被注释掉的app。

还要编辑DATABASES变量,它描述有关数据库的信息,如下:

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'pingshen', # Or path to database file if using sqlite3.
'USER': 'root', # Not used with sqlite3.
'PASSWORD': '', # Not used with sqlite3.
'HOST': 'localhost', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '3306', # Set to empty string for default. Not used with sqlite3.
}
}

engine表明是社么数据库,name是数据库的名字,user是用户名,password不说了,host一般是localhost,port是数据库端口号,mysql默认3306.


然后我们来验证一下之前写的app有没有语法错误。

python manage.py validate

会出项如下命令界面:

django 命令行方式使用model建数据库_数据库_02

说明没有错误。

最后安装模型,也就是说是建立数据库。

生成sql语句命令如下:

python manage.py sqlall books

cmd中会显示要执行的命令。

创建表:

python manage.py syncdb

接着会看到如下的提示:


Creating table books_publisher Creating table books_author Creating table books_book Installing index for books.Book model

数据库已经建立完毕,可以打开cmd进入mysql看一下,会有表出现。

最后我们插入几条数据,在页面里面显示一下。

新建view.py,代码如下:

from django.http import HttpResponse
from books.models import Publisher
def sql(request):

p2 = Publisher(name="O'Reilly", address='10 Fawcett St.',city='Cambridge', state_province='MA', country='U.S.A.',website='http://www.oreilly.com/')
p2.save()
publisher_list = Publisher.objects.all()

return HttpResponse(publisher_list)

很明显插入了一条记录。然后显示。

接着urls.py:

from django.conf.urls import patterns, include, url
from FirstSql.view import sql

urlpatterns = patterns('',
('^sql/$', sql),
)


项目代码就这些了,运行如下命令开启服务器:

python manage.py runserver

进入127.0.0.1:8000/sql/查看就可以了。



标签:name,models,py,django,length,books,命令行,model
From: https://blog.51cto.com/u_15873544/5844114

相关文章