连接数据库

配置文件settings

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 你的数据库引擎
'HOST': "localhost", # 你的数据地址,localhost代表本地
"PORT": 3306, # 端口, 数据库的默认端口一般是3306
"USER": "admin", # 用户名
"PASSWORD": "xxxx", # 密码
"NAME": "study" # 库名
}
}
如果你的数据库连接报错,
  1.缺少组件,可以安装以下的包
  • 安装依赖(如果使用虚拟环境,需要在虚拟环境下安装)
    • 安装mysql开发依赖包
  sudo apt-get install libmysqlclient-dev gcc
  2.ps: 如果出现连接被拒绝的错误:

    查看你的配置是否填写错误
    检查你的用户是否有远程权限
运行不报错则连接成功---------------------------------
创建表
  命令的执行过程:makemigrations(生成migrations文件,django通过这些文件创建表)
          migrate(迁移同步,通过生成的migartions文件创建表)  前提写好下面第一步
1.django创建表的类
# -*- coding: utf-8 -*-
from __future__ import unicode_literals from django.db import models # Create your models here. class Article(models.Model): # app名字+类名 生成表明 ps:app名字是hello,对应表名为 hello_article
title = models.CharField(max_length=50)
content = models.CharField(max_length=50) class Replay(models.Model):
content = models.CharField(max_length=50)

2.生成对应app的migrations文件  会自动生成id字段

  对已经存在的表进行修改,每执行一次makemigrations,会在该app的migrations文件下生成一个记录的py文件

  linux: python manage.py makemigrations  [appname]              可以不加appname,表示settings中的所有app,包括自带的app

  pycharm(选中项目名称)>tools>run manage.py Task...  进入命令行         输入命令 makemigrations  appname也可

3.迁移同步    同步数据库到mysql

同步之后:不能修改migrations文件  ps: 一套对应生成的migrations文件与数据库需保存一致,否则系统会报错!!!

linux:  python manage.py migrate  appname
pycharm  : migrate appname
 
************一套对应生成的migrations文件与数据库需保存一致,否则系统会报错!!!
   (1)不要对已经生成好的migrations文件做任何操作
   (2)所有对数据库的操作由同一个人做,并保留好一套migrations文件
   (3)不要直接在数据库中修改任何操作,比如修改字段,添加字段,删除字段等等;
 
当migrate迁移同步后:也就是创建好表后(migrations文件已经存在),如果新增字段,需要对新增字段进行设置 null=True 或者 default='xx' 
原因是 :django迁移同步后,生成的 migrations会记录表数据,而新增字段(没有数据)如果不指定字段可以为空或者设置默认值,它将不知道怎么展示数据      (已经存在的数据开始没这个字段,现在新增加字段时,你得给其它存在的数据添加新字段默认值或者null=True)
 
对已存在的表的字段进行增删
  在models里进行操作,新增字段则对新增字段进行设置 null=True 或者 default='xx' 
             删除字段则直接删除该字段代码
  最后都需要:makemigrations   +   migrate
 
当null=False, (不为空)如果不设置默认值 , 它默认为 空字符串 ' ',不符合django的上述限制条件
当null=False,default=None, 两者联合使用,才符合限制条件
 
 
 

django-连接数据库及创建表,已存字段的增删的更多相关文章

  1. django 做 migrate 时 表已存在的处理方法

    django 做 migrate 时 表已存在的处理方法 文章来源:嗨学网 http://www.piaodoo.com 在开发web的时候,如果是以前已存在的项目,项目下载下来后,为了使用测试库的数 ...

  2. Django中ORM创建表关系

    一:django中ORM创建表关系 ORM创建外键关系 1.表与表之间的关系 1.表与表之间的关系 一对多 一对一 多对多 2.操作目标条件: 图书表 出版社表 作者表 作者详情表 3.外键关联 一对 ...

  3. Django 之 文件配置、pycharm及django连接数据库、创表及表的增删改查02

    目录 创建项目后的文件夹配置 静态文件配置 接口前缀动态绑定 form表单回顾 根据请求方式的不同,返回前端不同的信息 pycharm 连接MYSQL数据库 Django 连接MYSQL数据库的配置 ...

  4. ORM以及Django使用ORM创建表

    day61 2018-04-28 1. 内容回顾 1. HTTP协议消息的格式: 1. 请求(request) 请求方法 路径 HTTP/1.1\r\n k1:v1\r\n ...\r\n \r\n ...

  5. django 做 migrate 时 表已存在的处理

    在开发web的时候,如果是以前已存在的项目,项目下载下来后,为了使用测试库的数据,会直接将整个测试库(如sqlite3)拿到本机来.这种情况下,如果执行的顺序不对,很容易在执行migrate的时候出现 ...

  6. mysql 重复执行创建表、新增字段脚本

    #bigint 可重复执行创建表脚本 1 Create Table If Not Exists `库名`.`表名`( 2 字段列表 3 ) ENGINE=InnoDB DEFAULT CHARSET= ...

  7. Oracle创建表、修改字段类型

    1.创建表 1.创建表 create table SCM_PER( --SCM_PER表名 ID ) primary key,--主键ID USERID ),--用户ID --Permission v ...

  8. Hibrenate实现根据实体类自动创建表或添加字段

    Hibernate支持自动建表,在开发阶段很方便,可以保证hbm与数据库表结构的自动同步. 实现: 在配置hibernate的配置文件中将hbm2ddl.auto设置为update,如:Xml代码&l ...

  9. python pymysql连接数据库并创建表

    之前看菜鸟教程 #!/usr/bin/python3 import pymysql # 打开数据库连接 db = pymysql.connect("localhost"," ...

随机推荐

  1. Missing artifact com.github.pagehelper:pagehelper:jar:3.4.2-fix的解决方法

    使用pagehelper.3.4.2.jar时报错,应该是无法从网络上下载该jar. 我的解决方案是: 从网络上下载一个pagehelper.3.4.2.jar包,然后复制到.m2目录中 如我的目录是 ...

  2. 跨站脚本功攻击,xss,一个简单的例子让你知道什么是xss攻击

    跨站脚本功攻击,xss,一个简单的例子让你知道什么是xss攻击 一.总结 一句话总结:比如用户留言功能,用户留言中写的是网页可执行代码,例如js代码,然后这段代码在可看到这段留言的不同一户的显示上就会 ...

  3. 这些HTML、CSS知识点,面试和平时开发都需要 No10-No11(知识点:表格操作、代码编写规则)

    系列知识点汇总 1.基础篇 这些HTML.CSS知识点,面试和平时开发都需要 No1-No4(知识点:HTML.CSS.盒子模型.内容布局) 这些HTML.CSS知识点,面试和平时开发都需要 No5- ...

  4. JAVA消息 AMQP

    AMQP(Advanced Message Queuing Protocol)高级的消息队列

  5. HTML <select> 标签

    定义和用法 select 元素可创建单选或多选菜单. <select&> 元素中的 <option> 标签用于定义列表中的可用选项. HTML 4.01 与 HTML ...

  6. HashMap1.8源码分析(红黑树)

    转载:https://segmentfault.com/a/1190000012926722?utm_source=tag-newest https://blog.csdn.net/weixin_40 ...

  7. Python - Learn Note (2)

    Python注释 Python的注释以#开头,后面的文字直到行尾都算注释 Python基本数据类型 整数.浮点数(浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置 ...

  8. bzoj4129

    题解: 树上+可修改莫队 莫队的每一块 可以用一个栈 每一次dfs个数>sqrt(n)(自己选的)的时候就可以跳出了 然后不要忘记分出来最后一块 代码: #include<bits/std ...

  9. 201621123006 《Java程序设计》第6周学习总结

    1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图或相关笔记,对面向对象思想进行一个总结. 注1:关键词与内容不求多,但概念之间的联系要清晰 ...

  10. Tensorflow 模型文件结构、模型中Tensor查看

    tensorflow训练后保存的模型主要包含两部分,一是网络结构的定义(网络图),二是网络结构里的参数值. 1.  .meta文件 .meta 文件以 "protocol buffer&qu ...