基本命令 1、新建一个django项目 django-admin.py startproject project-name 2、新建一个app python manage.py startapp app-name...备注:对已有的 models 进行修改,Django 1.7之前的版本的Django都是无法自动更改表结构的,不过有第三方工具south 4、运行开发服务器 python manage.py runserver...,会自动调用他们的界面 9、数据库执行命令 python manage.py dbshell django会进行到settings中设置的数据库,如果是mysql或者postgresql,会要求输入用户名和密码...目录下 的脚本(除__init__.py之外)全部删掉,再把数据库删掉之后创建一个新的数据库,数据库同步操作再重新做一遍。 ...使用Model对数据库进行增删改查: 1、views.py 访问index路径时,执行这个添加的函数 def index(req): from app_01 import models
South是方便Django应用进行数据库迁移/变动的这么个应用。它的宗旨是提供一个简单,稳定和数据库独立迁移层,以此来摒弃那些随着时间变化model的schema发生变化所带来的麻烦。...因此需要这么样的一个工具,来弥补Django只能在第一次创建表的不足。...South会被加到Django之后的版本中: Schema Migrations for Django 如何使用Django-South?...一个好的程序使用起来必定是简单的,South和它的宗旨一样,使用简单。只需要简单几步,针对已经建好model和创建完表的应用。...安装South到install_app中 然后就是几个命令: # 第一次使用要执行前两条 python manage.py schemamigration app> --initial python
索引 我们更喜欢使用 CREATE INDEX CONCURRENTLY 在现有的大型表上创建索引。...相反,只需在 Django 中重命名模型,并确保将 Meta.db_table 设置为当前表名,这样不会有任何中断。这是首选方法。...添加列 创建新列时,它们应始终创建为可为空的。这是出于两个原因: 如果存在现有行,添加非空列需要设置默认值,添加默认值需要完全重写表。这是危险的,很可能会导致停机 在部署期间,新旧代码混合运行。...对于任何其他类型,最好的前进路径通常是: 创建具有新类型的列。 开始对新旧列进行双重写入。 回填并将旧列值转换为新列。 更改代码以使用新字段。 停止写入旧列并从代码中删除引用。 从数据库中删除旧列。...相反,只需在 Django 中重命名字段,并在定义中使用 db_column 将其设置为现有的列名,这样就不会中断。这是首选方法。
本篇主要介绍我们在使用django框架开发的时候使用的常用语句,为了增加开发效率,建议将这些语句记住并多多练习, 开始 新建工程 django-admin startproject project-name...我们需要在项目的settings中的INSTALLED_APPS中添加我们所创建的app 同步数据库 python manage.py makemigrations python manage.py migrate...这两句代码的功能是同步数据库,我们在项目的settings中的DATABASES中设置好数据库各种参数,在app的models.py中创建我们所需要的字段,输入以上两条语句,django就自动帮我们自动生成了相应的数据表...都是无法自动更改表结构的,不过有第三方工具 south django1.7以上的版本已经集成south 使用测试服务器 python manage.py runserver # 当提示端口被占用的时候...manage.py createsuperuser django很好的一点就是自带了后台管理功能,但是我们去使用的时候还是需要创建超级管理员,去管理后台 按照提示输入用户名和对应的密码就好了邮箱可以留空
/ref/models/fields/#field-types 字段选项 字段选项, 指定创建的列的额外的信息 允许出现多个字段选项,多个选项之间使用,隔开 primary_key 如果设置为True...设置为False时,字段是必须填写的。 null 如果设置为True,表示该列值允许为空。...默认为False,如果此选项为False建议加入default选项来设置默认值 default 设置所在列的默认值,如果字段选项null=False建议添加此项 db_index 如果设置为True...) 请选择修复: 1)现在提供一次性默认值(将对所有现有行设置此列的空值) 2)退出,让我在models.py中添加一个默认值 选择一个选项: 错误原因 当对模型类新添加一个字段时可出现该错误 原理是...添加新字段后,数据库不知道原来已有数据对于新建字段该如何赋值,所以新增字段时,务必要添加 default 默认值。
有这样一道很熟悉的命令: python manger.py makemigrations 相当于在该app下建立 migrations目录,并记录下你所有的关于modes.py的改动,比如0001_initial.py...创建新的迁移 migrate: python manage.py migrate 使数据库状态与当前模型集和迁移集同步。...在python manger.py makemigrations之后执行命令: python manager.py migrate 就将该改动作用到数据库文件 如何禁用migrate的功能: Django...从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟对象数据库”。...2、如果不想使用 Django 的 makemigrations 和 migrate 功能,但是不小心执行了这两个命令会发生什么, 首先在该app下建立 migrations目录,并记录下你所有的关于modes.py
exit 推出重新登录,使 virtualenvwrapper 生效,也可以使用source 使之生效 $ exit 怎么使用 virtualenv # 创建一个虚拟运行环境,一般使用 VIRTUALENV_NAME...包含的是需要你自己指定的东西,以下不再说明 $ mkvirtualenv # 创建完后会自动启动虚拟环境,使用 deactivate 可退出 $ deactivate...Django 自带的 Scheme 管理器不能对 表结构变更起效,当你改变Model 的时候,必须手工的更改数据库表结构,何其蛋疼,何其容易出错。...$ pip install south # 将 south 加到你的 Django 工程的配置文件里 $ vim APP>/settings.py INSTALLED_APPS =..., } } 九、安装 RabbitMQ 和 celery ,提供异步执行支持 RabbitMQ,安装完必须要 创建用户 并 赋权 $ sudo apt-get install rabbitmq-server
假设你的model定义在了app名为myapp的models.py 文件中,为了使得Django识别出你要使用这个model,你就需要在settings.py中设定如下: 当你添加新的APP到INSTALLED_APPS...下面介绍几个比较常用的设置选项: null: 若为True,Django会把空数据使用NULL存储在数据库中。默认是False。 blank: 若为True,该字段允许为空。...给定一个model的实例,用于显示的choices的值可以通过使用get_FOO_display()方法来获取,例如: default: 这个选项用于设置该字段的默认值。...如果你改变了现有对象的主键的值然后保存了这个对象,一个新的对象就会和旧的对象并行创建。啥意思呢?...get_absolute_url(): 该函数告诉Django如何计算一个对象的url。Django 在admin接口中使用该函数,在需要的时候返回对象的url。
,我们要自己定义,可通过db_table 指明数据库表名,不使用他默认创建的,Django默认以 小写app应用名_小写模型类名 为数据库表名。...2) django会为表创建自动增长的主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后django不会再创建自动增长的主键列。...默认创建的主键列属性为id,可以使用pk代替,pk全拼为primary key。 3) 字段类型 ? 4) 选项 ?...null是数据库范畴的概念,blank是表单验证范畴的 5) 外键 一般我用CASCADE 在设置外键时,需要通过on_delete选项指明主表删除数据时,对于外键引用表数据如何处理,在django.db.models...NULL,仅在该字段null=True允许为null时可用 SET_DEFAULT 设置为默认值,仅在该字段设置了默认值时可用 SET() 设置为特定值或者调用特定方法,如 from django.conf
网站:http://python.usyiyi.cn/django/index.html 将遗留数据库整合到Django 虽然Django最适合用来开发新的应用,但也可以将它整合到遗留的数据库中。...一旦你的Django环境建立好之后,你可以按照这个大致的流程,整合你的现有数据库。 向Django提供你的数据库参数 你需要告诉Django你的数据库连接参数,以及数据库的名称。...请修改DATABASES设置,为’默认’ 连接的以下键赋值: NAME ENGINE USER PASSWORD HOST PORT 自动生成模型 Django自带叫做inspectdb的工具,可以按照现有的数据库创建模型...一旦你创建好了你的模型,把文件命名为models.py,然后把它放到你应用的Python包中。然后把应用添加到你的INSTALLED_APPS 设置中。...尝试通过Django数据库API访问你的数据,并且尝试使用Django后台页面编辑对象,以及相应地编辑模型文件。
django-db-mailer, star:156 - 一个 Django 模块,能很容易地发送使用 Django 模板 的邮件/短信/push/tss 信息,而模板存于数据库中并通过 Django...djrill, star:354 - 一个使用 MailChimp 的 Mandrill 事务型邮件邮件的邮件后端。 数据项 与扩展现有项类型功能或添加新项类型有关的包。...存储 扩展了现有存储后端的功能或提供新存储后端的相关包。 django-dynamic-preferences, star:75 - 为你的 Django 项目实现动态、全局的实例设置。...django-versatileimagefield, star:230 - Django ImageField 的简单替代器,它提供了一个灵活易用、易扩展的接口,能根据数据项中设置的图片快速地创建新的图片...网站 Django Girls Tutorial - 一篇有趣并且吸引人的教程,显示了如何使用 Django 创建一个 blog 并部署到 Heroku。
现在,管理命令使用argparse解析参数,默认所有的参数都传递给**options,除非你命名你的位置参数为args(兼容模式)。对于新的命令,鼓励你仅仅使用**options。...管理命令和区域设置 默认情况下,BaseCommand.execute()方法使转换失效,因为某些与Django一起的命令完成的任务要求一个与项目无关的语言字符串(例如,面向用户的内容渲染和数据库填入)...translation.deactivate() 另一个需要可能是你的命令只是简单地应该使用设置中设置的区域设置且Django应该保持不让它停用。...BaseCommand.leave_locale_alone 一个布尔值,指示设置中的区域设置在执行命令过程中是否应该保持而不是强制设成‘en-us’。 默认值为False。...如果它创建对区域设置敏感的数据库内容,这种内容不应该包含任何转换(比如django.contrib.auth权限发生的情况),因为将区域设置变成与实际上默认的‘en-us’ 不同可能导致意外的效果。
, last_name) 默认会创建一个自动递增的id主键 默认创建的数据库名为:应用名小写_数据库模型类小写 修改数据库远程连接权限 GRANT ALL PRIVILEGES ON * . * TO...字段 max_length 最大长度 unique 设置当前参数唯一 verbose_name 设置人性化的字段名 help_text 用于API文档中的中文名 null 允许为空 black 设置前端可以不传递...default 设置默认值 class Projects(models.Model): """ 创建Projects模型类 """ name = models.CharField...', ] 在 interfaces/models.py中编写 *一个项目中有多个接口 那么需要在「多」的一侧创建外键 * 项目表为父表「一」,接口表为「多」子表 class Interfaces(models.Model...:设置默认值,同时需要指定默认值,null=True 数据库操作 使用Pycharm自带的 PythonConsole就可以进入Django的shell模式 使用 python manage.py shell
夫唯不争,故天下莫能与之争 ——老子《道德经》 本节内容 1.项目配置文件settings.py介绍 2.数据库配置【MySQL】 3.创建模型对象并和数据库同步 4.python官方提供的项目后台管理平台的使用...:默认值:"" EMAIL_HOST选项中定义的SMTP服务器使用的用户名,如果为空~Django将不会尝试进行认证 1.2.22 EMAIL_PORT:默认值:25 EMAIL_HOST选项指定的...参阅 Django如何处理一个请求. 1.2.24 ECRET_KEY默认值: '' (空的字符串) 一个密码....用于为密码哈希算法提供一个种子.将其设置为一个随机字符串 -- 越长越好. django-admin.py startproject 会自动给你创建一个. 1.2.25 SEND_BROKEN_LINK_EMAILS...将其值设置为类似 ".lawrence.com" 这样 cookie 就可以跨域生效, 或者使用None 作为一个标准的域 cookie.
并检查mydata是否已被创建 show databases; 4、修改settings,连接数据库 打开settings文件,这里是默认的连接sqlite3,这也是一种数据库,我们要改成...大家的数据库名称和密码可能与我不一样,修改一下即可 5、对数据库进行操作 创建表 在app的models文件中,每新建一个类,就是创建一张表,类需继承models类 class Department(models.Model...已注册 检查表是否创建成功: desc app01_userinfo; 注意!!!...虽然我们在models中创建的是UserInfo类,但mysqlclient处理后真正的表名是 应用名+_+类(类全小写) 所以此处表名是 app01_userinfo 创建表后还能再添加字段吗...2、要是选2的话,并且没有任何操作,数据库中将不会显示新加的数据。 3、选2后,在源代码中添加默认值,将会出现数据。
在本教程中,您将学习如何连接到MySQL数据库,并为博客网站设置初始基础。这将涉及使用django-admin创建博客Web应用程序的框架,创建MySQL数据库,然后将Web应用程序连接到数据库。...在服务器上需要安装MySQL服务,关于如何安装请参考这里,不过如果你是生产环境,我们建议您使用云数据库来进行存储。 有了这些准备并设置了Django开发环境后,我们可以继续创建我们的应用程序。...我们将为我们的博客应用创建一个新目录。为您正在构建的应用程序调用一些有意义的名字。举个例子,我们称之为my_blog_app。...mkdir my_blog_app 现在,转到新创建的目录: cd my_blog_app 然后,创建并激活Python虚拟环境。...结论 在本教程中,您创建了Django博客的初始基础。您已经学会了如何安装,配置并连接MySQL到Django后端。
一般一个项目有多个app, 当然通用的app也可以在多个项目中使用。 3. 创建数据库表 或 更改数据库表或字段 Django 1.7.1及以上 用以下命令 # 1....进行修改,Django 1.7之前的版本的Django都是无法自动更改表结构的,不过有第三方工具 south。...这种方法可以在SQL等数据库中创建与models.py代码对应的表,不需要自己手动执行SQL。 4....Django 会自动进入在settings.py中设置的数据库,如果是 MySQL 或 postgreSQL,会要求输入数据库用户密码。 10....1、python manage.py startapp app_name 在一个项目中可以创建一到多个应用,每个应用进行一种业务处理 2、有的版本需要在settings中配置当前app,不然django
:"" 要使用的数据库名称,默认的SQLite数据库不需要该项 1.2.12 DATABASE_PASSWORD:默认值:"" 连接数据库时的登录密码,默认的SQLite数据库不需要该项 1.2.13...DATABASE_PORT:默认值:"" 连接数据库时使用的端口,默认的SQLite不需要该项 1.2.14 DATABASE_USER:默认值:"" 连接数据库时使用的用户名,SQLite不需要该项...参阅 Django如何处理一个请求. 1.2.34 ECRET_KEY默认值: ‘’ (空的字符串) 一个密码....用于为密码哈希算法提供一个种子.将其设置为一个随机字符串 越长越好. django-admin.py startproject 会自动给你创建一个. 1.2.35 SEND_BROKEN_LINK_EMAILS...将其值设置为类似 “.lawrence.com” 这样 cookie 就可以跨域生效, 或者使用None 作为一个标准的域 cookie.
模型类如果未指明表名,Django默认以小写app应用名_小写模型类名为数据库表名。...可通过db_table指明数据库表名。 2) 关于主键 django会为表创建自动增长的主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后django不会再创建自动增长的主键列。...默认创建的主键列属性为id,可以使用pk代替,pk全拼为primary key。 3) 属性命名限制 不能是python的保留关键字。 不允许使用连续的下划线,这是由django的查询方式决定的。...,表示允许为空,默认值是False blank 如果为True,则该字段允许为空白,默认值是False db_column 字段的名称,如果未指定,则使用属性的名称 db_index 若值为True,...,来阻止删除主表中被外键应用的数据 SET_NULL设置为NULL,仅在该字段null=True允许为null时可用 SET_DEFAULT设置为默认值,仅在该字段设置了默认值时可用 SET()设置为特定值或者调用特定方法
2 配置数据库 在我们探索 Django 的模型层之前,我们需要配置下数据库;告诉 Django 视野什么数据库以及如何连接数据库。这一步要确保配置无误,不然后面难以执行。...最后,别忘记在 setting.py 中将新创建的 app 激活。...'demo', # 我们新创建的 app ] 3.1 创建模型 打开我们刚才创建的 app 中的 models.py 文件,我们以后就主要在这里编写模型。...1)null :如果该参数设置为 True,Django将会把数据库中的空值保存为 NULL。不填写就默认为 False。...4)unique:如果该值设置为 True, 这个数据字段在整张表中必须是唯一的。 5)default:设置该字段的默认值。 6)由二项元组构成的一个可迭代对象(列表或元组),用来给字段提供选择项。
领取专属 10元无门槛券
手把手带您无忧上云