zoukankan      html  css  js  c++  java
  • Python+Django+SAE系列教程12-----配置MySQL数据库

    由于SAE上支持的是Mysql,首先我们要在本地配置一个Mysql的环境 ,我在网上找到MySQL-python-1.2.4b4.win32-py2.7.exe,并双击 安装


    选择典型安装


    安装结束后。会弹出配置数据库的界面 :


    然后输数据管理员password:


    最后是执行服务。


    这个过程并不复杂,安装完毕Mysql以后。系统会启动数据库服务,因为Mysql是用命令行控制的。想我这样懒的 人还是须要借助一个可视化 工具来管理,我选择MySQL-Front。

    在网上找到MySQL_Front_Setup.1765185107.exe,双击安装就能够了。安装完打开软件:


    这时我们会看到已经有的几个数据库:


    我要开发程序首先。我们要建立一个数据库(右键 新建数据库),起名字为Mytestdb:


    OK。这样我们就建立了一个空的数据库了,我先不着急在这里建表和表的关系。

    我们打算使用Django的模型的方式来建立:

    首先我们改动一下

     setting.py,好让Django认识我们新建立的数据库:

    ADMINS = (
        ('hemeng80', 'hemeng80@126.com'),
    )
    
    MANAGERS = ADMINS
    
    from os import environ  
    debug = not environ.get("APP_NAME", "") 
    if debug:  
        #LOCAL   
        db_name = "MyTestDB"  
        name = "root"  
        pwd = "123456"  
        host = "127.0.0.1"  
        port = "3306"  
    else:   
        #SAE   
        import sae.const  
        db_name = sae.const.MYSQL_DB       
        name = sae.const.MYSQL_USER     
        pwd = sae.const.MYSQL_PASS     
        host = sae.const.MYSQL_HOST      
        port = sae.const.MYSQL_PORT     
        host_s = sae.const.MYSQL_HOST_S   
    
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
            'NAME': db_name,                      # Or path to database file if using sqlite3.
            'USER': name,                      # Not used with sqlite3.
            'PASSWORD': pwd,                  # Not used with sqlite3.
            'HOST': host,                      # Set to empty string for localhost. Not used with sqlite3.
            'PORT': port,                      # Set to empty string for default. Not used with sqlite3.
        }
    }

    上面的内容不须要多解释,你就会能明确。一种是在sae环境下的链接,一种是在本地的链接。

    这时我们须要使用Django,生成一个模型。在命令行模式输入:

    python manage.py startapp person

    这个命令并没有输出什么。它仅仅在 mysite 的文件夹里创建了一个 books 文件夹。

    让我们来看看这个文件夹的内容:

    person/
        __init__.py
        models.py
        tests.py
        views.py


    这个文件夹包括了这个app的模型和视图。
    使用你最喜欢的文本编辑器查看一下 models.py 和 views.py 文件的内容。 它们都是空的。除了 models.py 里有一个 import。

    这就是你Django app的基础。

    眼下我们的文件夹结构是这种:



    接下来我们来

    编辑 personmodels.py,来定义我们的数据模型:

    models.py:

    from django.db import models
    
    # Create your models here.
    
    class ClassRoom(models.Model):
        name = models.CharField(max_length=30)
        tutor = models.CharField(max_length=30)
    
    class Student(models.Model):
        name = models.CharField(max_length=30)
        sex = models.CharField(max_length=5)
        age = models.IntegerField()
        state_province = models.CharField(max_length=30)
        qq = models.IntegerField()
        classroom = models.ForeignKey(ClassRoom)
    上面的数据模型比較简单,你一看就能明确,须要注意外键关系是这样建立的:
    classroom = models.ForeignKey(ClassRoom)
    为了让django认识我们新加入的App。还须要在setting.py中改动一些内容:

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

    这时,我们能够进入命令行程序,来检查一下我们的app是否正确:

    python manage.py validate

    假设没有问题的话,我们就能够使用这个模型来建立数据库中的表和表的关系了 ,命令行进入我们之前建立好的路径。输入:

    python manage.py sqlall person


    这样自己主动生成了,数据模型的建立表的SQl,语句,我们在mysql-front里面运行就能够自己主动创建数据库中的表了:


    假设我们复制粘贴的话,这里面有一点问题。当中语句长的换行了。会运行不通过的,我们改动一下即可了:


    在打开数据库,刷新看看,是不是我们表都自己主动创建了?


    我们注意到Django自己主动创建了一个自增的主键!

    既然我们在sae中开发。那么以下我就来看看怎样在sae中创建一个Mysql的数据库。加入表的。找到sae的Mysql服务。点击初始化:



    然后管理Mysql:


    在这个里面运行下面我们刚才复制的sql语句创建表 :


    这样我们就在本地和sae中创建了同样的表,并加入了响应的app,下一步就是怎样对这个表进行最主要的操作了。

  • 相关阅读:
    杭电 1548 A strange lift(广搜)
    JAVA数组的定义及用法
    WPF之Binding深入探讨
    FBReaderJ源代码编译配置
    【剑指offer】合并两有序单链表
    对HGE游戏引擎的一次封装
    WAV文件格式分析
    Ubuntu9.04更新源
    内核及内核模块
    java实现第七届蓝桥杯愤怒小鸟
  • 原文地址:https://www.cnblogs.com/wzjhoutai/p/6706193.html
Copyright © 2011-2022 走看看