步骤4:创建和运行您的第一个Django项目
注:此功能仅在专业版中受支持。
在你开始之前
本教程是使用以下假设创建的:
创建一个新项目
实际上,所有新项目都是以相同的方式创建的:通过单击欢迎屏幕的快速启动区域中的“ Create New Project”按钮:

如果您已经打开了项目,请选择主菜单中的File | New Project...来创建一个新的项目,选择所需的项目类型(这里是Django)。指定项目名称和位置。Python的最佳实践是为每个项目创建virtualenv。为此,请展开Project Interpreter:New Virtualenv Environment节点,然后选择用于创建新虚拟环境的工具。这里选择Virtualenv工具,并指定用于新虚拟环境的位置和基本解释器。如有必要,请选中下面的两个复选框。接下来,展开“ More Settings”节点并指定与Django相关的设置。在“ Application name”字段中,指定应用程序名称(此处为polls)。

单击Create - Django项目已准备就绪。
Exploring project structure
如上所述,基本上,存根项目已准备就绪。它包含特定于框架的文件和目录。当您创建任何受支持类型的项目时,也会发生同样的情况,无论是Pyramid还是Google App Engine。现在来看看如何在项目工具窗口中看到新项目的结构。
项目工具窗口的项目视图
默认显示此视图。它显示了特定于Django的项目结构: polls和mysite目录; 另外,你可以看到 manage.py和settings.py文件。请注意,您在此视图中看不到.idea目录:

项目工具窗口的项目文件视图
如果出于某些原因,您希望查看.idea目录的内容,请选择视图Project Files:如您所见,此视图显示相同的目录和文件,以及.idea目录,因为它位于项目根目录下:

在项目视图中看到了什么?
请注意,您可以根据需要创建任意数量的Django应用程序。要将应用程序添加到项目,请运行manage.py程序的startapp任务(Tools | Run manage.py task,然后在控制台中输入startapp)。
配置数据库
现在,当项目存根准备就绪时,让我们做一些微调。打开进行编辑settings.py。为此,请在“项目”工具窗口中选择该文件,然后按F4。该文件在编辑器中的own选项中打开。指定要在应用程序中使用的数据库。为此,找到 DATABASES变量:单击Ctrl+F,然后在搜索字段中开始键输入要查找的字符串。然后,在“ENGINE”行中,在dot之后添加数据库管理系统的名称(您可以使用注释后指定的任何名称,但首先我们将从sqlite3开始。)在该'NAME'行中,输入所需数据库的名称,即使它尚不存在。

启动Django服务器
由于选择sqlite3,因此不需要定义其他值(用户凭据,端口和主机)。现在检查一下设置是否正确。这可以最轻松地完成:只需启动manage.py实用程序的runserver任务:按Ctrl + Alt + R,然后在manage.py控制台中输入任务名称:

按照建议的链接,查看以下页面:

创建模型
接下来,编辑文件models.py,并注意import语句已经存在。然后输入以下代码:

实际上,你可以只复制粘贴,但建议输入 - 它可以帮助你看到功能强大的PyCharm的代码完成:

创建数据库
必须为新模型创建表。为此我们将使用Ctrl + Alt + R快捷方式来调用manage.py控制台。要执行的第一个命令是makemigrations polls:

因此,您已经告诉Django已经创建了两个新模型,即Choice 和Question,并创建了一个migration:

接下来,在提示符后,输入以下命令:
sqlmigrate polls 0001

最后,运行migrate命令在数据库中实际创建这些表:

执行管理功能
首先,创建一个超级用户。为此,请在manage.py控制台中输入createsuperuser命令,指定您的电子邮件地址和密码:

由于决定启用站点管理,PyCharm已经取消注释文件urls.py中的相应行。打开admin.py目录中的polls文件进行编辑,并查看以下已存在的代码:

但是,需要为管理站点启用编辑功能。
准备运行/调试配置
现在准备进入管理页面。当然,很有可能运行Django服务器,然后转到您的浏览器,并在地址栏中键入整个URL,但使用PyCharm有一种更简单的方法:使用预先配置的Django服务器运行配置稍作修改。要打开此运行/调试配置以进行编辑,请在主工具栏上单击运行/调试配置选择器,然后选择“ Edit Configurations”(或在主菜单上选择Run | Edit Configurations):

在“ Run/Dug Configuration”对话框中,为此运行/调试配置命名(此处为mysite),启用在默认浏览器中运行应用程序(选中“ Run browser ”复选框)并指定默认打开的站点页面(此页为http://127.0.0.1:8000/admin/):

启动管理站点
现在,要启动应用程序,请按Shift + F10,或单击主工具栏上的播放图标打开标准Django站点登录页面:

登录后,将显示管理页面。它有一部分身份验证和授权(组和用户),但Polls不可用。为什么这样?这里必须告诉管理员,Question对象有一个管理界面; 为此,打开文件 polls/admin.py进行编辑(在项目视图中选择并按下 F4),然后输入以下代码:

再次注意代码完成:

刷新页面,看到出现问题的Polls部分:

单击“ Add”以创建一些问题。
编辑admin.py
再次打开以编辑文件polls/admin.py并按如下所示进行更改:

现在查看更改问题页面:

Writing views
打开polls/views.py文件进行编辑,然后输入以下Python代码:

接下来,将新文件添加到名为urls.py的polls目录中,并在其中输入以下代码:

接下来,编辑文件mysite/urls.py(PyCharm已经为您创建)并添加索引页面的URL。您应该得到以下代码:

现在,打开页面127.0.0.1:8000/polls/:

接下来,添加更多视图。再次,将以下代码添加到polls/views.py文件中:

通过添加以下url()调用将这些新视图连接到polls.urls模块:

如果您现在在浏览器中打开相应的页面,您将看到,例如:

创建Django模板
如您所见,这些页面的设计在视图中是编码的。因此,为了使其更具可读性,您必须编辑相应的Python代码。 然后让我们将输出的可视化表示与Python分开 - 为此,创建模板。


请注意帮助您创建import语句的导入助手。您注意到的第一件事是对index.html页面的未解析引用:

PyCharm建议快速修复:如果单击灯泡,或按 Alt+Enter,则会在模板文件夹中创建相应的模板文件(请注意,PyCharm还会创建此模板应保留的目录Polls):

到目前为止,该index.html文件为空。将以下代码添加到其中:

注意模板文件中的代码完成! 例如,当您输入开头{%,PyCharm adds the matching closing one %}时,将插入符号放在将来输入的位置。 在HTML标记中,代码完成也可用。

这些图标使您可以立即在视图方法和模板之间跳转。
使用样式表
正如您在视图文件index.html中看到的那样,对样式表有一个引用,它没有得到解决:
以下列方式解析此引用:
在出现的弹出菜单中,选择“Directory”,然后指定目录结构的名称static/polls。

Here we are!
现在查看可用的Polls。管理站点已经运行,访问包含Polls列表(索引页面)的页面的最简单方法是指定其URL:在浏览器的地址栏中,而不是/ admin /,输入/ polls/:

测试一下
现在来看看PyCharm如何帮助简化测试应用程序。polls目录中已有文件tests.py。 到现在为止,这个文件是空的。 当然,建议将新测试放在此特定文件中。 例如,想确保Polls不是空的

要运行此测试,请在编辑器中右键单击文件tests.py的background,选择Run,或者按Ctrl + Shift + F10。 PyCharm建议两个选项:运行UnitTest(定义为默认测试运行器)或Django测试。测试结果显示在“运行”工具窗口的“ Test Runner”选项中:

概要
来源:网络
机智云提供的开发向导总共分为4步 1、注册开发者账号并登录 2、点击右上角创建新产品,依次选择创建的产品分类、产品名称及技术方案 点击产品基本信息可以看到我们刚刚创建的产品概览,我们的**待会生成代码时需要用到,可以提前复制: 3、接着点击数据点添加数据,根据自己需要设置标识名、数据类型等,每一个信息后面会有一个问号,鼠标移动过去会自动弹出对不同类型进行说明 标识名:数据点名称,用于在应用层传输,...
简言 Qt 是基于C++的 GUI 解决方案。QT简单易学(底层封装的好)、跨平台、相关资料易得到。 开始写Qt 相关的文章的主要原因是,我本人在编写一个视频录制及相关处理的项目,写到一半发现.net winform 相关UI的处理限制较大;虽然我也可以使用WPF 进行编写,但是我本人并没有接触过WPF,也想了解一下新的知识,所以就开始了Qt 之路。 我在几年前由于项目的需求,接触过Qt,从接触后...
一、认识Django的基本命令 Django环境配置完成之后,我们就可以使用Django来创建工程了: 首先我们可以使用django-admin.py help来查看相应的命令: 介绍几个常见的命令,也是入门之初常用到的命令: migrate:数据库的同步 manage,py runserver:启动django内置的简易服务器 django-admin.py startproject:新建一个D...
微服务,关键其实不仅仅是微服务本身,而是系统要提供一套基础的架构,这种架构使得微服务可以独立的部署、运行、升级,不仅如此,这个系统架构还让微服务与微服务之间在结构上“松耦合”,而在功能上则表现为一个统一的整体。这种所谓的“统一的整体”表现出来的是统一风格的界面,统一的权限管理,统一的安全策略,统一的上线过程,统一的日志和审计方法,统一的调...
教程来自官网:https://docs.docker.com/install/linux/docker-ce/ubuntu/#extra-steps-for-aufs 这个很流行,而且我也喜欢这个概念,我喜欢新鲜的东西(可以说相当的井底之蛙了)。所以尝试安装: 首先是仓库的选择,两种,核心在4之上可以用overlay2,也比较推荐用这个,特别是16.04及以上版本已经默认是包含了overlay2了...
某年某月某日,几名蒙面大汉冲进一家银行,一声枪声响起。其中,一名劫匪对银行柜员大喊:“把所有钱都交出来!” 银行工作人员一副生无可恋的表情:“先生,不好意思,所有的钱刚才被一个黑客转走了。” 这可以是一个故事,也可能是现实。 今年2月,第一个利用SWIFT(环球银行金融电信协会)系统进行网络金融盗窃的攻击事件被发现,攻击者成...
创建状态(new):进程在创建时需要申请一个空白PCB,向其中填写控制和管理进程的信息,完成资源分配。==如果创建工作无法完成,比如资源无法满足,就无法被调度运行,把此时进程所处状态称为创建状态== 就绪状态(ready):进程已经准备好,已分配到所需资源,只要分配到CPU就能够立即运行 执行状态(running):进程处于就绪状态被调度后,进程进入执行状态 阻塞状态(waiting):正在执行的...
登陆界面 v 登陆使用Membership的ValidateUser方法验证用户名与密码,根据用户所拥有的角色转到管理页面与个人页面,判断方法Roles.IsUserInRole(userName, “Admin”),可以使用FormsAuthentication.SetAuthCookie(userName,...
数据结构学习(五)——线性表 参考文献: [1]王道论坛.2018年数据结构考研复习指导 [M]北京:电子工业出版社,2017.03 [2]吴伟民,李小妹,刘添添,黄剑锋,苏庆,林志毅,李杨.数据结构(校内教材修订版) 广东工业大学计算机学院,2015.6 目录: 1、简单笔记: 2、顺序表删除最小值: 3、单链表就地逆置: 4、将单链表中元素排序: 5、找出两个单链表公共...
4、fetch子进程 如果收到的后端响应报文的ttl值小于0(失效了),或者响应报文中有Set-cookie首部,或者首部Vary等于“*”,则设定响应报文的ttl值为120秒,返回关键字hit_for_pass进行处理 5、移除单个缓存对象: purge与GET、DEAD一样,也是一种请求类型,用于清理缓存中的某特定对象及其变种(variants),因此,在有着明确要修剪...
When I go to the homepage of my website after clearing my cache and history, it oftentimes takes up to 10 s to load, but it is sporadic. Sometimes it loads quickly; other times it does not. Because we...
I'm swapping a program out that is several years old, and updating the PHP, and MySQL deprication, and am getting jammed up on syntax for preg_match versus ereg. I tried putting slashes everywhere, an...
How can I check if an NTFS drive exists before launching an application. If it's not present I'd like to display an error message. This is what I've got, but I'm no good at scripting. itunes.bat Messa...
I'm trying to extract information from strings like: to info like: Currently I'm not able to parse correctly when the module_name part contains . chars. See table below. The example below show how I e...
I have a form with a text area, I need to remove from the string entered here eventuals multiple spaces and multiple new lines. I have written this function to remove the multiple spaces This function...