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

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

python django-admin.py startproject FirstSql

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

python manage.py startapp books

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


我们所要编辑的就是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
会出项如下命令界面:

说明没有错误。

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

生成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/查看就可以了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值