编写你的第一个Django应用,第2部分Django文档Django

Thewebframeworkforperfectionistswithdeadlines.

从哪里获得帮助:

如果你在阅读本教程的过程中有任何疑问,可以前往FAQ的:doc:GettingHelp的版块。

现在,打开mysite/settings.py。这是个包含了Django项目设置的Python模块。

通常,这个配置文件使用SQLite作为默认数据库。如果你不熟悉数据库,或者只是想尝试下Django,这是最简单的选择。Python内置SQLite,所以你无需安装额外东西来使用它。当你开始一个真正的项目时,你可能更倾向使用一个更具扩展性的数据库,例如PostgreSQL,避免中途切换数据库这个令人头疼的问题。

SQLite以外的其它数据库

如果你使用了SQLite以外的数据库,请确认在使用前已经创建了数据库。你可以通过在你的数据库交互式命令行中使用"CREATEDATABASEdatabase_name;"命令来完成这件事。

如果你使用SQLite,那么你不需要在使用前做任何事——数据库会在需要的时候自动创建。

这些应用被默认启用是为了给常规项目提供方便。

默认开启的某些应用需要至少一个数据表,所以,在使用他们之前需要在数据库中创建一些表。请执行以下命令:

写给极简主义者

在Django里写一个数据库驱动的Web应用的第一步是定义模型-也就是数据库结构设计和附加的其它元数据。

设计哲学

来介绍一下迁移-举个例子,不像RubyOnRails,Django的迁移代码是由你的模型文件自动生成的,它本质上是个历史记录,Django可以用它来进行数据库的滚动更新,通过这种方式使其能够和当前的模型匹配。

这些概念可以通过一个Python类来描述。按照下面的例子来编辑polls/models.py文件:

上面的一小段用于创建模型的代码给了Django很多信息,通过这些信息,Django可以:

但是首先得把polls应用安装到我们的项目里。

Django应用是“可插拔”的。你可以在多个项目中使用同一个应用。除此之外,你还可以发布自己的应用,因为它们并不会被绑定到当前安装的Django上。

$pythonmanage.pymakemigrationspolls...\>pymanage.pymakemigrationspolls你将会看到类似于下面这样的输出:

迁移是Django对于模型定义(也就是你的数据库结构)的变化的储存形式-它们其实也只是一些你磁盘上的文件。如果你想的话,你可以阅读一下你模型的迁移数据,它被储存在polls/migrations/0001_initial.py里。别担心,你不需要每次都阅读迁移文件,但是它们被设计成人类可读的形式,这是为了便于你手动调整Django的修改方式。

$pythonmanage.pysqlmigratepolls0001...\>pymanage.pysqlmigratepolls0001你将会看到类似下面这样的输出(我把输出重组成了人类可读的格式):

BEGIN;----CreatemodelQuestion--CREATETABLE"polls_question"("id"serialNOTNULLPRIMARYKEY,"question_text"varchar(200)NOTNULL,"pub_date"timestampwithtimezoneNOTNULL);----CreatemodelChoice--CREATETABLE"polls_choice"("id"serialNOTNULLPRIMARYKEY,"choice_text"varchar(200)NOTNULL,"votes"integerNOTNULL,"question_id"integerNOTNULL);ALTERTABLE"polls_choice"ADDCONSTRAINT"polls_choice_question_id_c5b4b260_fk_polls_question_id"FOREIGNKEY("question_id")REFERENCES"polls_question"("id")DEFERRABLEINITIALLYDEFERRED;CREATEINDEX"polls_choice_question_id_c5b4b260"ON"polls_choice"("question_id");COMMIT;请注意以下几点:

迁移是非常强大的功能,它能让你在开发过程中持续的改变数据库结构而不需要重新删除和创建表-它专注于使数据库平滑升级而不会丢失数据。我们会在后面的教程中更加深入的学习这部分内容,现在,你只需要记住,改变模型需要这三步:

数据库迁移被分解成生成和应用两个命令是为了让你能够在代码控制系统上提交迁移数据并使其能在多个应用里使用;这不仅仅会让开发更加简单,也给别的开发者和生产环境中的使用带来方便。

现在让我们进入交互式Python命令行,尝试一下Django为你创建的各种API。通过以下命令打开Python命令行:

$pythonmanage.pyshell...\>pymanage.pyshell我们使用这个命令而不是简单的使用"Python"是因为manage.py会设置DJANGO_SETTINGS_MODULE环境变量,这个变量会让Django根据mysite/settings.py文件来设置Python包的导入路径。

让我们再为此模型添加一个自定义方法:

保存文件然后通过pythonmanage.pyshell命令再次打开Python交互式命令行:

为你的员工或客户生成一个用户添加,修改和删除内容的后台是一项缺乏创造性和乏味的工作。因此,Django全自动地根据模型创建后台界面。

Django产生于一个公众页面和内容发布者页面完全分离的新闻类站点的开发过程中。站点管理人员使用管理系统来添加新闻、事件和体育时讯等,这些添加的内容被显示在公众页面上。Django通过为站点管理人员创建统一的内容编辑界面解决了这个问题。

管理界面不是为了网站的访问者,而是为管理者准备的。

$pythonmanage.pycreatesuperuser...\>pymanage.pycreatesuperuser键入你想要使用的用户名,然后按下回车键:

Username:admin然后提示你输入想要使用的邮件地址:

Emailaddress:admin@example.com最后一步是输入密码。你会被要求输入两次密码,第二次的目的是为了确认第一次输入的确实是你想要的密码。

如果开发服务器未启动,用以下命令启动它:

但是我们的投票应用在哪呢?它没在索引页面里显示。

只需要再做一件事:我们得告诉管理员,问题Question对象需要一个后台接口。打开polls/admin.py文件,把它编辑成下面这样:

点击"Questions"。现在看到是问题"Questions"对象的列表"changelist"。这个界面会显示所有数据库里的问题Question对象,你可以选择一个来修改。这里现在有我们在上一部分中创建的“What'sup”问题。

THE END
1.数据库编程总结carekee2、VC数据库编程几种方法 VC数据库编程几种方法,包括ODBC连接、MFC ODBC连接、DAO连接、OLE DB、OLE DB Templates连接、ADO、Oracle专用方法(OCI(Oracle Call Interface)访问、Oracle Object OLE C++ Class Library )。 <1.>通用方法 1. ODBC连接 ODBC(Open DataBase Connectivity)是MSOA的一部分,是一个标准数据...https://www.cnblogs.com/carekee/articles/1749649.html
2.Oracle数据库PLSQL开发OracleSQL开发习题答案1.员工试用期6个月,转正后月薪上调20%,请查询出所有员工工作第一年的所有收入(需考虑奖金部分),要求显示格式为:XXX的第一年总收入为XXX。 2.查询员工表中一共有哪几种岗位类型。 课后作业 1.分别选择员工表、部门表、薪资等级表中的所有数据 2.分别查看员工表、部门表、薪资等级表结构。 https://www.jianshu.com/p/5a482617fbef
1.简单数据库制作,教你用C语言创建自己的数据库!!!简单数据库制作,教你用C语言创建自己的数据库!!! 作品名称:《数据录入与存储》 作品介绍: 《数据录入与存储》是一个用C语言编写的简单程序,主要用于从用户处接收一系列整数数据,并将这些数据存储到一个数组中,最后将数组中的数据追加到一个文件中。 程序的主要功能如下:...https://download.csdn.net/blog/column/12550940/135725657
2.使用java语言编写一个简单的数据库管理系统使用java语言编写一个简单的数据库管理系统 演示:如何创建一个普通的Java工程,并导入MySql数据库的驱动包,用JDBC方式来连接数据库。 Intellj Idea 先创建工程 1、打开Intellij Idea,创建Project,File->New->Project,如图所示: 2、指定JDK安装目录,再点击Next...https://blog.51cto.com/u_19261/12517633
3.Java实现定时任务的方法总结java修改admin下的配置文件:邮箱、数据库连接(jdbc:mysql://localhost:3306/xxl_job?serverTimeZone=Asia/Shanghai) 运行启动类 访问http://localhost:8080/xxl-job-admin 默认账户admn,密码123456 编写一个自己的代码 在页面中添加定时任务并启动运行 运行报错:执行器地址为空 打开页面中的执行器管理,新增一条 Appnam...https://www.jb51.net/program/2903277t8.htm
4.学完这篇Nest.js实战,还没入门的来锤我!(长文预警)到此我们认识了Controller、Service、Module、路由以及一些常用的装饰器, 那接下来就实战一下,我们以开发文章(Post)模块作为案例, 实现文章简单的CRUD,带大家熟悉一下这个过程。 编写代码 写代码之前首先介绍几个nest-cli提供的几个有用的命令: 代码语言:javascript ...https://cloud.tencent.com/developer/article/1907958
5.数据库课程设计指导书6篇(全文)数据库是信息系统的核心和基础,它把信息系统中大量的数据按一定的模型组织起来,提供存储、维护、检索数据的功能,使信息系统可以方便、及时、准确地从数据库中获得所需的信息。 数据库设计是信息系统开发和建设的重要组成部分。 数据库设计的基本任务是:对于一个给定的应用领域,设计优化的数据库逻辑和物理结构,使之满足...https://www.99xueshu.com/w/filea0fwsq7u.html
6.java毕业实习报告(精选11篇)本次的实习内容主要包括:对登录管理系统有一个初步的构思及确定其应该包括哪些模块实现什么功能;对SQL的基础知识的理论学习;理论联系实际对SQL进行具体操作;学会用SQL建数据库及所需表格的具体方法;理解连接SQL数据库的语句及能正确的应用于实践;完成简单的登录系统;软件初步测试。https://www.fwsir.com/Article/html/Article_20141119170516_283897.html
7.计算机应用专业毕业实习报告(精选15篇)我的岗位为电脑程序编写,即用filemake软件编写能调用资料库中的信息的程序,然后再用VB软件编写一个能将filemake中所调用的信息导入到indesign软件并实现某些功能的引擎,我工作主要任务有以下几点: (1)、了解各类单的特点,学会看单,做到能看懂单、熟练的区分各种不同的单,对于单中出现的错误能作出立刻反应,明白经常...https://www.ruiwen.com/shixibaogao/5142259.html
8.MyBatis学习总结(二)——MyBatis核心配置文件与输入输出映射作用:将数据连接单独配置在db.properties中,只需要在myBatisConfig.xml中加载db.properties的属性值,在myBatisConfig.xml中就不需要对数据库连接参数进行硬编码。数据库连接参数只配置在db.properties中,方便对参数进行统一管理,其它xml可以引用该db.properties。 https://www.west.cn/info/html/chengxusheji/Javajishu/20181008/4596398.html
9.asp.net基础笔试题全解完整答案3、SqlConnection 用来创建一个到数据库的连接 4、SqlCommand 用来执行SQL语句 5、SqlDataReader 用来顺序读取数据 6、SqlDataAdapter 用来将数据填充到DataSet或DataTable 10.UDP连接和TCP连接的异同。 前者只管传,不管数据到不到,无须建立连接.后者保证传输的数据准确,须要连接. ...https://www.yjbys.com/bishi/timu/926386.html
10.Awesome最长公共前缀:编写一个函数来查找字符串数组中的最长公共前缀,如果不存在公共前缀,返回空字符串。(leet code 14) 最简单的办法就是循环迭代查找,该方法时间复杂度和空间复杂度均很低,而且容易想到。除此之外,还可以使用分治的方法,但是结果并没有更优秀 class Solution { public: string lon...https://github.com/Ty-Chen/Awesome-Backend/blob/5ad253a0f2e82d9b83892a60e01a1e0a855d70b3/Data%20Structure%20and%20Algorithm.md
11.ASP.NETCore适用于.NET的开源Web框架.NET 是一个开发人员平台,由工具、编程语言、库组成,用于构建许多不同类型的应用程序。 ASP.NET Core 通过专门用于生成 web 应用的工具和库扩展了.NET 开发人员平台。 更深入发掘: 什么是 ASP.NET Core? 了解ASP.NET Core 通过我们的教程、视频课程和文档,了解 ASP.NET Core 提供的所有功能。 https://asp.net/
12.Alibaba最新1000多道Java面试题汇总详解,收藏起来慢慢刷!我分享的这份春招 Java 后端开发面试总结包含了 JavaOOP、Java 集合容器、Java 异常、并发编程、Java 反射、Java 序列化、JVM、Redis、Spring MVC、MyBatis、MySQL 数据库、消息中间件 MQ、Dubbo、Linux、ZooKeeper、 分布式 &数据结构与算法等 25 个专题技术点,都是小编在各个大厂总结出来的面试真题,已经有很多粉丝...https://maimai.cn/article/detail?fid=1728969401&efid=esjJLvGGL4fAr1LArgq_cQ
13.NavicatPremiumLite简单的数据库管理和开发工具在一个干净直观的界面中,使用代码补全、代码段和语法高亮显示加速你的编码过程。Navicat 为你提供无缝的编码环境,让你可以更快地编写高质量的代码,并且减少错误。 导入和导出 导入和导出各种基于文本的文件(如 TXT、CSV、XML 和 JSON)中的数据。将外部来源的数据导入数据库,以及从数据库中提取数据并将其保存为不同...https://www.navicat.com.cn/products/navicat-premium-lite
14.计算机二级C语言考试冲刺练习题【解析】内模式也称存储模式,它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式,对应于物理级,它是数据库中全体数据的内部表示或底层描述,是数据库最低一级的逻辑描述。所以选项A)正确。 5、 在满足实体完整性约束的条件下 A、一个关系中可以没有候选关键词 ...https://www.oh100.com/kaoshi/ncre2/tiku/538366.html
15.数据库设计(精选十篇)此阶段的主要工作是将上阶段的概念结构转换为某个数据库管理系统支持的数据模型, 并进行优化。逻辑结构应该选择最适合表达概念结构的数据模型, 然后选择最适合的数据库刮泥系统。将实体的属性、实体和实体间的联系转化为关系模式实际就是将E-R图转换为关系模型的过程。 3.3 数据库物理设计阶段 这一阶段的主要目的是...https://www.360wenmi.com/f/cnkeyl762svr.html