• python3 django连接mysql,同步表结构


    第一步:安装PyMySQ代替MySQLdb

    pip3 install PyMySQL
    然后在工程目录的__init__.py中填写下面两句话
     
    import pymysql
    pymysql.install_as_MySQLdb()
     
     
    问题:安装过程中如果提示No module named 'MySQLdb'
     
    解决方法:python3使用上面的方法替代MySQLdb
    原因:python3中,不再使用MySQLdb包了

    第二步:配置数据库和INSTALLED_APPS(app下的settings.py)

    配置数据库
    DATABASES = {

        'default': {
            'ENGINE': 'django.db.backends.mysql',#数据库引擎
            'NAME': 'UITest',#数据库名
            'USER':'root',#数据库用户名
            'PASSWORD':'123456',#数据库密码
            'HOST':'',#数据库地址,默认localhost
            'PORT':'',#数据库端口,默认3306
        }
    }
     
    配置INSTALLED_APPS
    在INSTALLED_APPS下添加app名
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'webManage',
    ]

    第三步:创建model.py

    class后的是表名,继承models.Model,下面写表中的字段名,字段支持多种类型
     
    from django.db import models

    # Create your models here.

    class page(models.Model):
        pageid=models.IntegerField().primary_key
        chinessname=models.CharField()
        englishname=models.CharField().unique
        pagedesc=models.CharField()

    class elements(models.Model):
        elementid=models.IntegerField().primary_key
        pageid=models.ForeignKey(page)
        variablename=models.CharField().unique
        variabledesc=models.CharField()
        find_by_android_option=models.CharField()
        find_by_android_value=models.CharField()
        find_by_iOS_option=models.CharField()
        find_by_iOS_value=models.CharField()
     
    更多关于models的使用,详见官方文档
     

    第四步:同步数据库文件

     检查要修改的数据库字段:python3 manage.py makemigrations
     
    执行命令后,可以看到如下会修改的内容
    同时会在app的migrations中生成一个000开头的文件,文件内写明了要进行的sql操作
     
     
    修改数据库:python3 manage.py migrate
    然后在数据库内会看到新增的表,表名为【app名_class表示的表名】,同时在django_migrations表中添加记录
     
    备注:如果settings.py中的INSTALLED_APPS没有填写当前app,找不到app下要同步的models文件
     
  • 相关阅读:
    运营总监招聘-e袋洗招聘-拉勾网
    中国服饰行业十大趋势
    赢在形象力之色彩
    百度系统部 在 北京市海淀区西二旗首创空间大厦 招聘 Python-交付运维系统研发工程师
    时间规划师
    使用python/casperjs编写终极爬虫-客户端App的抓取-ZOL技术频道
    传统线下零售商已经过时了,细分电商领域的机会仍待挖掘 | 36氪
    艺术私学----免费摄影、绘画、时尚造型课程体验_豆瓣
    艺术私学------绘画免费体验课程_豆瓣
    艺术私学------绘画免费体验课程_豆瓣
  • 原文地址:https://www.cnblogs.com/meitian/p/6412257.html
Copyright © 2020-2023  润新知