在 Hibernate 保存数据的时候,提示没有选择数据库。...Hibernate 没有设置正确的数据库,比如说在连接参数中没有设置,比如说没有在 HBM 文件中没有设置分类等。...其实这个没有选择数据库的错误是因为你主键生成策略没有设置正确。...如果你使用的是 MySQL 或者 MariaDB, 你可以在表中设置自增序列,让数据库来帮你处理主键。...但是在 Hibernate 的 @GeneratedValue 注解中,你需要设置为: @GeneratedValue(strategy = GenerationType.IDENTITY),这样你就不会遇到上面提示的数据库没有找到的错误了
模板 这个模板需要显示主题的名称和条目的内容;如果当前主题不包含任何条目,我们还需向用 户指出这一点: topic.html {% extends 'learning_logs/base.html...最后,你使用了模板继承,它可简化各个模板的 结构,并使得修改网站更容易。 在第19章,我们将创建对用户友好而直观的网页,让用户无需通过管理网站就能添加新的主 题和条目,以及编辑既有的条目。...然 后,我们再对这些有效信息进行处理,并将其保存到数据库的合适地方。这些工作很多都是由 Django自动完成的。...要将提交的信息保存到数据库,必须先通过检查确定它们是有效的(见)。...这 种自动验证避免了我们去做大量的工作。如果所有字段都有效,我们就可调用save()(见), 将表单中的数据写入数据库。保存数据后,就可离开这个页面了。
您对模型进行了一些更改(在这种情况下,您进行了新的更改),并且希望将更改存储为迁移。...迁移功能非常强大,它允许您在开发项目时随着时间的推移更改模型,而不需要删除数据库或表并创建新表——它专门用于实时升级数据库,而不会丢失数据。...如果您不熟悉 Python 中的时区处理,可以在时区支持文档中了解更多内容 保存这些更改,并通过运行 Python manager .py shell 再次启动一个新的 Python 交互式 shell...页面的底部提供了几个选项: 保存-保存更改并返回此类型对象的更改列表页。 保存并继续编辑——保存更改并重新加载此对象的管理页面。 保存并添加另一个——保存更改并为这种类型的对象加载一个新的空白表单。...例如,在一个博客应用程序中,您可能有以下视图: 博客首页-显示最近的几个条目。 条目“详细信息”页面——一个条目的永久链接页面。 基于年份的归档页面——显示给定年份中的所有月份和条目。
如果请求方法为POST,我们就对数据进行处理:创建一个EntryForm 实例,使用request对象中的POST数据来填充它(见4);再检查表单是否有效,如果有效,就设 置条目对象的属性topic,再将条目对象保存到数据库...调用save()时,我们传递了实参commit=False(见5),让Django创建一个新的条目对象,并 将其存储到new_entry中,但不将它保存到数据库中。...我们将new_entry的属性topic设置为在这个 函数开头从数据库中获取的主题(见6),然后调用save(),且不指定任何实参。这将把条目保 存到数据库,并将其与正确的主题相关联。...现在用户可以添加新主题,还可以在每个主题中添加任意数量的条目。 请在一些既有主题中添加一些新条目,尝试使用一下页面new_entry。...该页面收到POST请求(条目文本经过修订)时,它将修改后的文本保存到数据库中: views.py from django.shortcuts import render --snip-- from
接着上节继续学习,本章将建立用户账户 Web应用程序的核心是让任何用户都能够注册账户并能够使用它,不管用户身处何方。在本章中,你将创建一些表单,让用户能够添加主题和条目,以及编辑既有的条目。...一 让用户能够输入数据 建立用于创建用户账户的身份验证系统之前,我们先来添加几个页面,让用户能够输入数据。我们将让用户能够添加新主题、添加新条目以及编辑既有条目。...然后,我们再对这些有效信息进行处理,并将其保存到数据库的合适地方。这些工作很多都是由Django自动完成的。...在Django中,创建表单的最简单方式是使用ModelForm,它根据前面的模型中的信息自动创建表单。...2 添加新条目 现在用户可以添加新主题了,但他们还想添加新条目。我们将再次定义URL,编写视图函数和模板,并链接到添加新条目的网页。效果如下图: ?
介绍 Django是一个用于快速创建Python应用程序的灵活框架。默认情况下,Django应用程序配置为将数据存储到轻量级SQLite数据库文件中。...我们将安装必要的软件,为我们的应用程序创建数据库凭据,然后启动并配置一个新的Django项目以使用此后端。 先决条件 首先,您需要一个干净的Ubuntu 16.04服务器实例,并设置非root用户。...pip install django psycopg2 我们现在可以在我们的myproject目录中启动Django项目。这将创建一个同名的子目录来保存代码本身,并将在当前目录中创建一个管理脚本。...在方括号中,列出与Django服务器关联的IP地址或域名。每个项目都应该在引号中列出,条目用逗号分隔。如果您希望请求整个域和任何子域,请在条目的开头添加一个句点。...完成后,保存并关闭文件。 迁移数据库并测试您的项目 现在配置了Django设置,我们可以将数据结构迁移到数据库并测试服务器。 我们可以从创建和应用迁移到我们的数据库开始。
QuerySet QuerySet本身可以在不访问数据库的情况下构造、过滤、切片或复制和分配。只需要在需要从数据库检索数据或将数据保存到数据库时访问数据库。...例如,这将打印数据库中所有条目的标题。...切片未执行的QuerySet通常会返回另一个未执行的Query Set。但是,如果使用切片语法的step参数,Django将执行数据库查询并返回一个列表。...annotation()的每个参数都是一个注释,将添加到返回的QuerySet中的每个对象。 Django提供的聚合函数在以下聚合函数中进行了描述。...headline') Entry.objects.order_by(Coalesce('summary', 'headline').desc()) 如果不想在查询中应用任何排序,即使是默认排序,也可以在不带参数的情况下调用
介绍 Django是一个用于快速创建Python应用程序的灵活框架。默认情况下,Django应用程序配置为将数据存储到轻量级SQLite数据库文件中。...我们将安装必要的软件,为我们的应用程序创建数据库凭据,然后启动并配置一个新的Django项目以使用此后端。 先决条件 首先,您需要一个干净的CentOS 7服务器实例,并设置非root用户。...我们可以在我们编辑的pg_hba.conf文件中看到这个local条目。基本上,这意味着如果用户的操作系统用户名与有效的Postgres用户名匹配,则该用户无需进一步身份验证即可登录。...这将创建一个同名的子目录来保存代码本身,并将在当前目录中创建一个管理脚本。确保在命令末尾添加点,以便正确设置: django-admin.py startproject myproject ....完成后,保存并关闭文件。 迁移数据库并测试您的项目 现在配置了Django设置,我们可以将数据结构迁移到数据库并测试服务器。 我们可以从创建和应用迁移到我们的数据库开始。
当操作符被用于两个 Q 对象之间时会生成一个新的 Q 对象。...当 Django 遇到 F() 的实例时,它会覆盖标准的 Python 运算符来创建一个封装的 SQL 表达式;在本例中,它指示数据库递增由 reporter.stories_filed 表示的数据库字段...如果两个 Python 线程执行上面第一个例子中的代码,一个线程可以在另一个线程从数据库中获取一个字段的值后,检索、递增并保存它。第二个线程保存的值将基于原始值,第一个线程的工作将丢失。...注意:F() 赋值在 Model.save() 之后持续存在 F() 分配给模型字段的对象在保存模型实例后会持续存在,并将应用于每个 save()。...')) 查出所有评论数大于 pingbacks 的博客条目。
定义数据库 在Django中使用多个数据库的第一步是告诉Django您将要使用的数据库服务器。 数据库可以有您选择的任何别名。但是,别名 default 有着特殊的意义。...若要将数据保存到指定的数据库;例如,若要将对象保存到 legacy_users 数据库,您可以使用这个: my_object.save(using='legacy_users') 如果不指定using,...将对象从一个数据库移到另一个数据库 如果您已将实例保存到一个数据库,再使用 save(using=...)作为将实例迁移到新数据库。如果您不采取适当的步骤,这可能会产生一些意想不到的后果。...这将创建一个主键,Django将主键分配给p; 当保存到 'second' 数据库上时,p已经有一个主键值,Django将尝试在新数据库中使用该主键。...如果second数据库没有该主键值,那么就不会有任何问题,对象将被复制到新的数据库。但是,如果p的主键在second数据库中有对应的数据时,对应数据将被重写。 可以通过两种方式避免这种情况。
在本教程中,我们将演示如何在Debian 8上安装和配置某些组件以支持和服务Django应用程序。我们将设置PostgreSQL数据库,而不是使用默认的SQLite数据库。...创建PostgreSQL数据库和用户 我们将直接进入为我们的Django应用程序创建数据库和数据库用户。 默认情况下,Postgres使用称为“同级匹配身份验证”的身份验证方案进行本地连接。...创建和配置一个新的Django项目 安装我们的Python组件后,我们可以创建实际的Django项目文件。 创建Django项目 由于我们已经有了一个项目目录,我们将告诉Django在这里安装文件。...我们现在可以在我们的myproject目录中启动Django项目。这将创建一个同名的子目录来保存代码本身,并将在当前目录中创建一个管理脚本: 注意:确保在命令末尾添加句点,以便可以正确设置。...在方括号中,列出与Django服务器关联的IP地址或域名。每个项目都应该在引号中列出,每个条目用逗号分隔。如果您希望响应域和任何子域的请求,请在条目的开头添加句点。
确定该如何修改数据库,使其能够存储与我们定义的新模型相 关联的数据。...通过存储散列值,即便黑客获得了网站数据库的访问权,也只能获取其中存储的散列值, 而无法获得密码。在网站配置正确的情况下,几乎无法根据散列值推导出原始密码。 2....我们还 添加了一个省略号,指出显示的并非整个条目。 18.2.5 迁移模型 Entry 由于我们添加了一个新模型,因此需要再次迁移数据库。...OK 生成了一个新的迁移文件——0002_entry.py,它告诉Django如何修改数据库,使其能够存储 与模型Entry相关的信息(见1)。...学习什么 情况下遵守这些原则、什么情况下不用遵守很重要。) 当你单击Save时,将返回到主条目管理页面。
“学习笔记”的主页对这个网站进行描 述,并邀请用户注册或登录。用户登录后,就可创建新主题、添加新条目以及阅读既 有的条目。学习新的主题时,记录学到的知识可帮助跟踪和复习这些知识。...在这种情况下,你可以在环境中安装包,并使用已安装的包。你在ll_env中安装的包 仅在该环境处于活动状态时才可用。...18.1.6 在 Django 中创建项目 在依然处于活动的虚拟环境的情况下(ll_env包含在括号内),执行如下命令来新建一个项目: 1 (ll_env)learning_log$ django-admin.py...首次执行命令migrate时,将让Django确保数据库与项 目的当前状态匹配。在使用SQLite(后面将更详细地介绍)的新项目中首次执行这个命令时, Django将新建一个数据库。...在1处,Django指出它将创建必要的数据库表,用于存储我们将在这 个项目(Synchronize unmigrated apps,同步未迁移的应用程序)中使用的信息,再确保数据库结 构与当前代码(Apply
首先创建并移动到新的项目目录: mkdir ~/newproject cd ~/newproject 接下来,使用python与您的Python版本兼容的命令在项目目录中创建虚拟环境。...在新环境中,您可以使用pip安装Django。无论您的Python版本如何,pip都应该在虚拟环境中调用pip。...要迁移数据库(此示例默认使用SQLite),让我们用manage.py使用migrate命令。迁移将您对Django 模型所做的任何更改应用于数据库模式。...在方括号中,列出与Django服务器关联的IP地址或域名。每个项目都应该在引号中列出,单独的条目用逗号分隔。如果您需要整个域和任何子域的请求,请在条目的开头添加一个句点: . . ....完成后,保存文件并退出编辑器。 测试开发服务器 一旦有了用户,就可以启动Django开发服务器,看看新的Django项目是什么样的。您应该仅将其用于开发目的。
目录 1 背景 2 流程: 3 举例 3.1 自定义的注解 3.2 创建的类 3.3 创建的扩展类 1 背景 当我们想要在执行完成一个方法的时候,想要将这个方法相关的日志保存到数据库里面,比如这个方法的入参...,这个方法的返回的主键的值,那么这个需要使用到spring里面的aop了。...也就是功能的扩展,对一个方法功能的扩展。...在扩展类里面,要从注解里面获取到对应的值,之后将值保存到想要保存的数据库里面。...public void excudeService() { } // returning 属性,值代表返回的具体信息,都保存在这个里面 @AfterReturning(returning
1.4 在Django中创建项目 在依然处于活动的虚拟环境的情况下(ll_env包含在括号内),执行如下命令来新建一个项目: (ll_env)learning_log$ django-admin.py...为给项目“学习笔记”创建数据库,请在处于活动虚拟环境中的情况下执行下面的命令: (11_env) D:\study\python\code\learning_log> python manage.py...在使用SQLite(后面将更详细地介绍)的新项目中首次执行这个命令时,Django将新建一个数据库。...确定该如何修改数据库,使其能够存储与我们定义的新模型相关联的数据。...2.5迁移模型 由于我们添加了一个新模型,因此需要再次迁移数据库。
在本指南中,我们将演示如何在Ubuntu 18.04上安装和配置某些组件以支持和服务Django应用程序。我们将设置PostgreSQL数据库,而不是使用默认的SQLite数据库。...创建PostgreSQL数据库和用户 我们将直接进入并为我们的Django应用程序创建数据库和数据库用户。 默认情况下,Postgres使用称为“对等身份验证”的身份验证方案进行本地连接。...创建和配置新的Django项目 安装我们的Python组件后,我们可以创建实际的Django项目文件。 创建Django项目 由于我们已经有了一个项目目录,我们将告诉Django在这里安装文件。...在方括号中,列出与Django服务器关联的IP地址或域名。每个项目都应该在引号中列出,条目用逗号分隔。如果您希望请求整个域和任何子域,请在条目的开头添加一个句点。...如果通向套接字的任何目录没有全局读取和执行权限,则Nginx将无法在不允许全局读取和执行权限的情况下访问套接字,或确保将组所有权授予Nginx所属的组的。
在1处,我们获取用户要修改的条目对象,以及与该条目相 关联的主题。在请求方法为GET时将执行的if代码块中,我们使用实参instance=entry创建一个 EntryForm实例(见2)。...在标签{% url %}中,我们将 条目ID作为一个实参,让视图对象能够修改正确的条目对象。...我们将提交按钮命名为save changes,以提醒用户:单击该按钮将保存所做的编辑,而不是创建一个新条目(见2)。 4....将应用程序users添加到settings.py中 在settings.py中,我们需要将这个新的应用程序添加到INSTALLED_APPS中,如下所示: settings.py --snip...如果表单的errors属性被设置,我们就显示一条错误消息(见1),指出输入的用户名—密码 对与数据库中存储的任何用户名—密码对都不匹配。
在本教程中,我们将演示如何在Debian 9上安装和配置某些组件以支持和服务Django应用程序。我们将设置PostgreSQL数据库,而不是使用默认的SQLite数据库。...第2步 - 创建PostgreSQL数据库和用户 我们将直接进入并为我们的Django应用程序创建数据库和数据库用户。 默认情况下,Postgres使用称为“对等身份验证”的身份验证方案进行本地连接。...第4步 - 创建和配置新的Django项目 安装我们的Python组件后,我们可以创建实际的Django项目文件。...在方括号中,列出与Django服务器关联的IP地址或域名。每个项目都应该在引号中列出,条目用逗号分隔。如果您希望请求整个域和任何子域,请在条目的开头添加一个句点。...如果通向套接字的任何目录没有全局读取和执行权限,则Nginx将无法在不允许全局读取和执行权限的情况下访问套接字,或确保将组所有权授予Nginx所属的组的。
在本指南中,我们将演示如何在Debian 10上安装和配置某些组件以支持和服务Django应用程序。 我们将设置PostgreSQL数据库,而不是使用默认的SQLite数据库。...第2步 - 创建PostgreSQL数据库和用户 我们将直接进入并为我们的Django应用程序创建数据库和数据库用户。...第4步 - 创建和配置新的Django项目 安装我们的Python组件后,我们可以创建实际的Django项目文件。...在方括号中,列出与Django服务器关联的IP地址或域名。 每个项目都应列在引号中,条目用逗号分隔。 如果您希望请求整个域和任何子域,请在条目的开头添加一个句点。...如果通向套接字的任何目录没有世界读取和执行权限,则Nginx将无法在不允许全局读取和执行权限的情况下访问套接字,或确保将组所有权授予Nginx所属的组的。
领取专属 10元无门槛券
手把手带您无忧上云