编写你的第一个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.数据库6.选择网站并发连接数,同时连接的数目,“Decision Support(DSS)/OLAP(20个左右)”、“Online Transaction Processing(OLTP)(500个左右)”、“Manual Setting(手动设置,自己输一个数)”。 7.是否启用TCP/IP连接,设定端口,如果不启用,就只能在自己的机器上访问mysql数据库了,在这个页面上,您还可以选择“启用标准模式...https://www.jianshu.com/p/da76bf1f9fde
1.数据库设计步骤数据库设计步骤 1,收集信息 了解需求(访谈) 2,识别实体 要哪些表 3,列出属性 4,实体关系https://blog.csdn.net/qq_35391791/article/details/143769221
2.创建高度可用的MySQL数据库在Azure Stack Hub 操作员创建和配置 MySQL 群集,并将其添加为 Azure Stack Hub MySQL 托管服务器后,自己的订阅中包含 MySQL Server 数据库功能的租户用户可以按照本节中的步骤创建高度可用的 MySQL 数据库。备注 以租户用户(其订阅提供 MySQL Server 功能,即 Microsoft.MySQLAdapter 服务)身份从 Azure Stack Hub ...https://learn.microsoft.com/ZH-CN/azure-stack/operator/azure-stack-tutorial-mysql?view=azs-2108
3.数据库设计文档自动生成mysqlmob64ca12d94299的技术博客此脚本创建了一个名为exampleDB的数据库,并在其中创建了user和order表。该设计文档中的所有信息都可通过此脚本轻松展现出来。 类图示例 在设计数据库时,使用类图可以清晰地表达实体与其关系。以下是一个用Mermaid语法表示的类图示例: places >10..*User+int id+String username+String emailOrder+int id+int user_...https://blog.51cto.com/u_16213336/12567201
4.康复科医生工作总结(通用8篇)现将任职以来的工作情况总结如下:晋升为主治医师是独立开展工作的开始,为迅速提高自己的诊疗技术,前两年本人一直在呼吸科工作,进过工作的锻炼使我迅速提高对呼吸疾病的认识和治疗水平,能熟练处理好各种情况。 在工作中,本人深切的认识到一个合格的内科医生应具备的素质和条件。努力提高自身的业务水平,不断加强业务理论...https://www.oh100.com/a/202301/5912100.html
5.什么是BI?企业数字化的规划和落地第三层,数据源层- 即BI的数据层,各个业务系统底层数据库的数据通过 ETL 的方式抽取到BI的数据仓库中完成 ETL 过程,建模分析等等,最终支撑到前端的可视化分析展现。 02、BI在企业IT信息化中的位置 这一点是所有企业如果规划要上BI项目的时候必须弄明白的:BI在IT信息化中到底处于一个什么样的位置?弄清楚定位是信息...https://maimai.cn/article/detail?fid=1778763808&efid=IIU4kC9omHSMNDd9brumRg
6.广州市招生考试委员会办公室网站附件:一、《服装市场与营销》课程(课程代码:0683) 考试大纲 二、《服装发展简史》课程(课程代码:3902) 考试大纲 三、《服装专业英语》课程(课程代码:3921)考 试大纲 四、《关系数据库与程序设计》课程(课程代码: 8087)考试大纲 五、《计算机网络基础》课程(课程代码:8348) ...https://gzzk.gz.gov.cn/zxks/zkxx/zyykc/content/post_5085226.html
7.雅虎笔试题目解析:设计关系数据库时,需要根据业务需求和数据特点,合理设计实体之间的关系、属性及其数据类型,并设置相应的约束和索引以优化查询性能。 6、SQL语句中用于更新表数据的命令是什么? 答案:UPDATE。 解析:UPDATE命令用于修改表中的数据。 7、软件测试的目的是什么? https://www.yjbys.com/bishi/timu/58097.html
8.准备好了吗?KindleFireHD7国行评测(全文)除了底栏会按照不同的使用方向调整自己的位置这点以外,在浏览器界面下它还可以自动隐藏以换取更多的显示空间,只在屏幕边缘留下一个手柄来提示用户可以使用它来呼出隐藏的底栏,这两个小细节也体现除了产品设计师人性的一面。 6亚马逊应用市场界面 ■纯粹为消费内容而生的平板 ...https://pad.zol.com.cn/379/3791179_all.html