zoukankan      html  css  js  c++  java
  • Django开发网站(四)

    模型:

    配置数据库

    首先保证数据库已经安装,默认在Ubuntu下已经安装了sqlite3数据库,然后在项目名下的配置文件settings.py修改如下代码:

    安装sqlite3

     DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.sqlite3', 
            'NAME': '/home/myproject/datas/mydata.db',      
            # The following settings are not used with sqlite3:

        'USER': '',
            'PASSWORD': '',
            'HOST': '',                   
            'PORT': '',                      
        }

    安装mysql

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql', #
            'NAME':'Blog', # 数据库的名字. 数据库的名字必须在Mysql的数据库中存在,否则会报错,数据库的名字可以任意起,但是别忘记在mysql数据库中创建此数据库                          
            'USER': 'gjianw217',  # 用户名.
            'PASSWORD': '******',
            'HOST':'/tmp/mysql.sock' ,# 如果是localhost的话,留空                     
            'PORT':'3306' ,#如果你没改动的话,mysql默认就是这个端口                  
        }
    }

    编写models

    数据库文件或数据表的添加是在应用中的models.py文件中添加的,如在应用中添加如下代码:

    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

    生成数据

     在设置中添加应用app

     执行python manage.py validate,验证模型的有效性

     执行python manage.py sqlall books,生成CREATE TABLE 语句

     执行python manage.py syncdb,提交SQL语句至数据库

    取出数据

     Publisher.objects.all()

    Publisher.objects.filter(name='Apress')  数据过滤

    Publisher.objects.get(name="Apress")   获取单个的对象

     Publisher.objects.order_by("name")      按字母顺序

    Publisher.objects.order_by("-name")      指定逆向排序

    Publisher.objects.order_by('name')[0:2]  取出固定数目的记录

    放入数据

    完成对象的创建及存储至数据库

     p1 = Publisher(name='Apress', address='2855 Telegraph Avenue',
         city='Berkeley', state_province='CA', country='U.S.A.',
         website='http://www.apress.com/')
     p1.save()

    完成对象的创建与存储至数据库

    p2 = Publisher(name='Apress', address='2855 Telegraph Avenue',
         city='Berkeley', state_province='CA', country='U.S.A.',
            website='http://www.apress.com/')

  • 相关阅读:
    Spring源码阅读BeanFactory体系结构分析 coder
    Spring源码阅读IoC容器解析 coder
    Spring源码阅读ApplicationContext体系结构分析 coder
    【学习笔记】卷积神经网络 coder
    Spring源码阅读环境搭建 coder
    【学习笔记】分布式Tensorflow coder
    【spring实战第五版遇到的坑】3.1中的例子报错 coder
    阿里云服务器磁盘空间不足解决办法
    Tomcat配置https SSL证书
    mybatis:Creating a new SqlSession Closing non transactional SqlSession
  • 原文地址:https://www.cnblogs.com/gjianw217/p/3344529.html
Copyright © 2011-2022 走看看