前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >带你构建你的的第一个Python和Django应用程序

带你构建你的的第一个Python和Django应用程序

作者头像
企鹅号小编
发布于 2018-01-11 08:51:44
发布于 2018-01-11 08:51:44
2.9K02
代码可运行
举报
文章被收录于专栏:人工智能人工智能
运行总次数:2
代码可运行

群内不定时分享干货,包括最新的python企业案例学习资料和零基础入门教程,欢迎初学和进阶中的小伙伴入群学习交流

您以前可能听说过Python,特别是如果您已经编写了一段时间。

Python是一种高级的通用编程语言。这意味着你可以使用它来编写从简单的游戏到支持每月数百万用户的网站的任何内容。

事实上,每月有数百万访问者的几个高调站点依靠Python来提供一些服务。例如YouTube和Dropbox

这就是说,为什么你应该首先使用Python?为什么不是像Ruby或PHP这样疯狂的其他流行语言之一呢?那么,用Python你会得到以下好处:

易于阅读的语法。

语言周围的真棒社区。

简单易学。

Python对于从基本shell sripting到高级web开发的各种任务是有用的。

何时不使用Python

虽然使用像wxPython这样的工具可以很容易地使用Python编写桌面应用程序,但是您通常会更好地使用您所针对的平台提供的专用工具,例如Windows上的.NET。

当您的特定用例具有非常专业的需求时,您也不应该使用Python,而其他语言可以更好地满足这些要求。一个例子就是当你构建一个嵌入式系统时,一个像C,C ++和Java这样的语言占统治地位的领域。

Python的2对3的Python

Python 2.7.x和3.x都被广泛使用。Python 3将变化引入到需要重写Python 2中编写的应用程序的语言中,以便与Python 3.x分支一起工作。然而,你需要使用的大多数库现在已经被移植到Python 3。

我用的是Python 3。虽然原理保持不变,但只需要很少的语法修改就可以使代码在Python 2.7.x下运行。

一些Python代码示例

你好,世界

正如我之前所说,Python的主要好处之一是它的“非常容易阅读的语法。多么容易?检查Python的无处不在的版本Hello World。

此代码打印出来Hello, World的控制台。您可以通过访问此站点轻松地尝试此代码,将代码示例粘贴到页面右侧的编辑器中,然后单击run页面上方的按钮以查看输出。

条件逻辑

条件逻辑同样简单。这里有一些代码来检查用户的年龄是否高于18岁,如果是,打印Access allowed或Access not allowed其他。

该input()功能用于读取键盘输入。因此,在运行脚本执行脚本的其余部分之后,您需要在终端提示符中键入一些内容。请注意,该input()函数被封装在int()函数中。

这是因为input()读取值strings,但我们需要年龄是一个integer。因此,我们必须将键盘输入强制转换为字符串,否则在检查字符串是否大于18时会出现错误。

最后,请注意else对if语句中不符合条件的任何其他输入执行的语句。

抽象数据类型

Python也有一些优秀的内置抽象数据类型,用于存放项目集合。一个例子是可以用来保存任何类型的变量的列表。下面的代码显示了如何创建一个列表,并遍历它来将每个项目打印到终端。

上面的代码创建了一个包含数字,字符串和列表的列表(是的,列表可以包含其他列表!)。为了遍历列表,一个for-in循环派上用场。请记住,列表是零索引的,所以我们也可以使用索引访问列表项。例如,要输出字符串python,你可以写:

字典

Python提供的另一个优秀的数据类型是字典。字典存储键值对,类似于JSON对象。创建一个字典也很简单。

现在你已经知道了一点Python,我们来谈谈Django

Django的

Django是一个Python Web框架。它是免费的,开源的,自2005年以来一直存在。它是非常成熟的,并具有优秀的文档和默认包括真棒功能。它提供的一些优秀的工具是:

优秀的轻量级服务器开发和测试。

良好的模板语言。

像CSRF这样的安全功能包括在内。

Django中包含了许多其他有用的东西,但是随着您的进行,您可能会发现它们。我们将在本教程中使用Django来构建我们的网站。

设置

在本教程中,我将向您展示如何启动并运行Django网站。在我们到达那里之前,首先从Python网站上获取最新的Python的副本。

请注意,如果你在OSX上,你已经安装了自制软件,你可以做

之后,直接进入该Getting started with Django部分

在为您的操作系统安装正确的版本后,您将需要确保它已正确设置。打开一个终端并键入:python3 你应该看到类似下面的东西:

这是交互式的Python shell。CTRL + D现在点击退出

设置环境

为了避免使用不必要的软件包污染我们的全球范围,我们将使用虚拟环境来存储我们的软件包。一个优秀的虚拟环境管理员可免费获得virtualenv。我们将使用Python的包管理器pip来安装这个和其他的包,比如Django,我们将在后面要求。首先,让我们virtualenv安装。

完成之后,创建一个名为“项目”的文件夹,然后cd放入任意位置。

一旦进入项目文件夹,创建另一个名为hello的文件夹。该文件夹将保存我们的应用程序

在这一点上,我们需要创造环境来满足我们的要求。我们将在hello文件夹内做到这一点。

该-p开关告诉virtualenv您要使用的Python版本的路径。随意用自己的Python安装路径切换出路径。名称env是环境名称。您也可以将其更改为符合项目名称的其他项目。

一旦完成,你应该有一个文件夹env在你的hello文件夹内调用。现在你的结构应该看起来像这样。

您现在已经准备好激活环境并开始编码了!

你会看到一个环境名称的提示。这意味着环境是活跃的。

安装Django

这是一个简单的点子安装。Django的最新版本是Django 1.9.6

创建一个应用程序

现在已经安装了Django,我们可以使用它的启动脚本来创建一个框架项目。这和使用其管理脚本一样简单。

运行这个命令创建一个具有以下结构的框架django应用程序:

当您查看helloapp创建的文件夹时,您将找到一个名为的文件manage.py和另一个名为的文件夹helloapp。这是您的主要项目文件夹,并将项目的设置包含在名为的文件中settings.py以及项目中的路径中urls.py。随意打开settings.py文件以熟悉其内容。

准备好咱们继续前进

更改应用程序设置

让我们改变一些设置。settings.py用你最喜欢的编辑器打开文件。找到一个名为Installed Apps的部分,看起来像这样。

Django运用应用程序的概念。应用程序是一个独立的代码单元,可以自行执行。一个应用程序可以做很多事情,比如在浏览器上提供一个网页,或者处理用户身份验证或者其他任何你能想到的事情。Django带有一些预先安装的默认应用程序,如身份验证和会话管理器应用程序。我们将创建的任何应用程序或我们将需要的第三方应用程序将在Installed Apps安装默认应用程序后添加到列表的底部。

在我们创建一个自定义应用程序之前,让我们改变应用程序的时区。Django使用tz database时区,其中的列表可以在这里找到。

时区设置看起来像这样。

将其改为适合您的时区的东西。

创建你自己的应用程序

需要注意的是,Django应用程序遵循模型,视图,模板范例。简而言之,应用程序从模型中获取数据,视图对数据做了一些处理,然后渲染包含处理信息的模板。因此,Django模板对应于传统MVC中的视图,而Django视图可以被比作传统MVC中的控制器。

这就是说,让我们来创建一个应用程序。cd进入第一个helloapp文件夹并输入;

运行此命令将创建一个名为howdy的应用程序。你的文件结构现在应该看起来像这样。

为了让Django识别我们全新的应用程序,我们需要将应用程序名称添加到Installed Apps我们settings.py文件中的列表中。

一旦完成,让我们运行我们的服务器,看看会输出什么。我们提到Django带有一个内置的轻量级Web服务器,它在开发过程中很有用,但不应该用于生产。按如下所示运行服务器:

您的输出应该类似于以下内容:

如果仔细观察,您将看到一条警告,提示您有未应用的迁移。现在忽略这一点。转到您的浏览器并访问http://127.0.0.1:8000/。如果一切顺利,您应该看到Django的欢迎页面。

我们将用我们自己的模板替换这个页面。但首先,让我们谈谈迁移。

迁移

迁移使您可以轻松地更改数据库模式(模型),而不必丢失任何数据。无论何时您创建新的数据库模型,运行迁移都会更新您的数据库表以使用新的模式,而不必丢失任何数据,或者经历繁琐的丢弃和重新创建数据库的过程。

Django带有一些已经为其默认应用程序创建的迁移。如果您的服务器仍在运行,请通过点击停止CTRL + C。输入以下内容应用迁移:

如果成功,你会看到类似这个的输出。

现在运行服务器不会显示任何警告。

网址和模板

当我们运行服务器时,显示了默认的Django页面。我们需要Django来访问我们的howdy应用程序,当有人去的主页网址是/。为此,我们需要定义一个URL来告诉Django在哪里寻找主页模板。

打开urls.py内部helloapp文件夹内的文件。它应该看起来像这样。

正如你所看到的,Django管理站点有一个现有的URL模式,默认使用Django。让我们添加我们自己的网址来指向我们的howdy应用程序。编辑文件看起来像这样。

请注意,我们已经include从django.conf.urls添加了一个导入,并为空路线添加了一个url模式。当有人访问主页(在我们的例子中是http:// localhost:8000)时,Django将在howdy应用程序中寻找更多的url定义。由于没有,运行应用程序将产生巨大的堆栈跟踪由于ImportError。

我们来解决这个问题。转到howdy应用程序文件夹并创建一个名为的文件urls.py。该howdy应用程序文件夹现在应该是这样的。

在新urls.py文件里面,写下这个。

此代码从我们的howdy应用程序导入视图,并期望调用的视图HomePageView被定义。由于我们没有一个,打开应用程序中的views.py文件,howdy并写下这段代码。

这个文件定义了一个叫做视图HomePageView。Django视图接受request并返回一个response。在我们的例子中,这个方法get需要一个对我们urls.py文件中定义的url的HTTP GET请求。在附注中,我们可以将我们的方法重命名post为处理HTTP POST请求。

一旦接收到HTTP GET请求,该方法就会呈现一个名为index.htmlwhich 的模板,它只是一个普通的HTML文件,可以在普通的HTML标签中写入特殊的Django模板标签。如果您现在运行服务器,您将看到以下错误页面:

这是因为我们根本没有任何模板!Django templates在您的应用程序内的文件夹中查找模板,所以请继续在您的howdy应用程序文件夹中创建一个模板。

进入刚创建的模板文件夹,并创建一个名为的文件 index.html

在index.html文件里面,粘贴这个代码。

现在运行你的服务器。

你应该看到你的模板呈现。

链接页面

我们再添加一个页面。在您的howdy/templates文件夹中,添加一个名为的文件about.html。在里面,写下这个HTML代码:

一旦完成,编辑原始index.html页面看起来像这样。

点击About me链接将不会工作,因为我们的应用程序没有/about/定义的网址。让我们编辑urls.py我们的howdy应用程序中的文件来添加它。

一旦我们添加了路线,about.html当我们访问/about/网址时,我们需要添加一个视图来呈现模板。让我们编辑应用程序中的views.py文件howdy。

请注意,在第二个视图中,我没有定义一个get 方法。这只是使用这个TemplateView类的另一种方式。如果您设置了该template_name属性,则对该视图的获取请求将自动使用定义的模板。尝试改变HomePageView使用中使用的格式AboutPageView。

现在运行服务器并访问主页应该显示我们的原始模板,并添加到关于页面的新增链接。

点击About me链接应该引导你到About页面。

本文来自企鹅号 - PythonDevil媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文来自企鹅号 - PythonDevil媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
Nature | 西湖大学,gsMap:空间+转录组+基因组+性状联合分析,可将空间基因表达与复杂性状相关联
◉ gsMap 首先使用图神经网络 (GNN) 学习嵌入表示,这些嵌入整合了基因表达水平、空间坐标,并可选地整合细胞类型注释先验信息。◉ 随后,gsMap 根据嵌入中的余弦相似性为每个位点识别同质位点,以形成一个微区域。◉ 每个位点依次被视为焦点位点,并通过将基因在微区域内的平均排名除以其在整个空间转录组 (ST) 切片中的平均排名,计算每个基因在每个焦点位点的特异性得分。◉ D,位点的微区域;F,基因表达特异性;G,位点空间图;R,排名;X,基因表达矩阵;Z,嵌入表示。◉ 然后,基于每个位点的 GSS(基因空间特异性得分)与其到转录起始位点 (TSS) 的距离以及 SNP 到基因的链接图,将这些 GSS 映射到单核苷酸多态性 (SNP),从而为每个位点生成一组独特的 SNP 注释。◉ 对于每个位点的 SNP GSS 注释,gsMap 使用分层连锁不平衡回归 (S-LDSC) 来评估具有更高 GSS 的 SNP 是否对目标性状的遗传力有显著富集。◉ LD,连锁不平衡。◉ 为了量化某个空间区域与性状关联的显著性,gsMap 使用柯西组合检验来聚合该空间区域内位点的 P 值。
生信菜鸟团
2025/05/23
3070
Nature | 西湖大学,gsMap:空间+转录组+基因组+性状联合分析,可将空间基因表达与复杂性状相关联
GWAS公开结果哪里找,GWAS Catalog来帮忙
GWAS Catalog是EBI旗下的一个数据库,收录了公开发表的GWAS分析结果,截止2019-11-21,收录了16万个SNP位点和疾病之间的关联信息,更多信息汇总如下
生信修炼手册
2019/12/19
4.1K1
GWAS公开结果哪里找,GWAS Catalog来帮忙
CAUSALdb:涵盖数千个GWAS研究和Fine-mapping结果的可视化数据库
现在 GWAS 研究越来越多。要查询以往的 GWAS 研究结果,可以使用 GWAS Catalog。GWAS Catalog 包含的信息非常多,不过有时可能满足不了需要。这里,推荐一个叫 CAUSALdb 的数据库。
实验盒
2021/09/22
1.3K0
CAUSALdb:涵盖数千个GWAS研究和Fine-mapping结果的可视化数据库
R包“ieugwasr“教程---SNP信息查询
在孟德尔随机化研究中,我们常常会碰到SNP没有rsid的情况,这个时候需要我们把rsid添加上,如果SNP的个数不是很多的话,我们可以使用variants_chrpos()函数:
生信与临床
2022/08/21
5.7K0
R包“ieugwasr“教程---SNP信息查询
COSMIC数据库详细梳理
Drug development proceeds via a series of widely-recognised phases.Actionability uses an extended version of the FDA’s phase definitions. Possible values are: Approved FDA, Approved other, Phase 3, Phase 2, Phase 1, Experimental, Orphan/Fast track, Case study, Out of trials human study, Retrospective/Meta-analysis, Phase 4, Unknown.
追风少年i
2024/06/07
3040
COSMIC数据库详细梳理
如何获取完整的GWAS summary数据(1)------GWAS catalog数据库
在孟德尔随机化(Mendelian randomization,MR)研究中,对于暴露数据我们只需要那些显著的SNP信息,这样的信息在各种GWAS数据库中都是很容易获取的。但是,关于结局的数据,由于需要SNP和结局不相关,所以很多时候这种不显著的结果无法直接从文章或者数据库中查询到,这时候我们需要下载完整的GWAS summary数据了,这种数据一般包含上百万乃至上千万的SNP信息,所以数据量比较大(压缩后在200M左右),希望大家有所认识,有所准备。
生信与临床
2022/08/21
9K0
如何获取完整的GWAS summary数据(1)------GWAS catalog数据库
mqtldb-meQTL预测数据库
之前我们在[[SNP是什么东西?#QTL]]当中提到过,QTL是一种用来预测SNP功能的算法。一般分析SNP影响哪个方面的功能就在前面加什么前缀。[[表观遗传学简介]]当中的DNA甲基化 (DNA methylation) 是一种通过给DNA序列添加甲基来影响基因功能的方式。如果要分析SNP对甲基化的影响,那么就会有meQTL (methylation QTL) 这样的东西。所以这里就给大家介绍两个关于meQTL预测的数据库。Pancan-meQTL: http://gong_lab.hzau.edu.cn/Pancan-meQTL/
医学数据库百科
2022/09/02
8070
mqtldb-meQTL预测数据库
数据库介绍 | PharmGWAS:一个基于GWAS的药物再利用知识库
生信菜鸟团
2024/11/23
2390
数据库介绍 | PharmGWAS:一个基于GWAS的药物再利用知识库
R包“ieugwasr“教程---功能介绍与分析
在进行孟德尔随机化(Mendelian randomization, MR)研究时,我们最常使用的一个R包就是“TwoSampleMR”,这个包是由“MRCIEU”团队开发的。除此之外,该团队还开发了“PHESANT”这个使用非常广泛的R包以及“open GWAS”这个数据库。
生信与临床
2022/08/21
3.7K0
R包“ieugwasr“教程---功能介绍与分析
玩转 ENSEMBL 数据库 (一)
生物信息学离不开数据库的使用,一般情况下,我们似乎能难使用一个数据库的全部功能,但不可否认的是,一个数据库往往隐藏着我们不知道的使用技巧,也可能我们使用过这些功能,但不够完整。所以这里我们一起探索一下数据库的使用奥秘及深度解读信息。
生信菜鸟团
2025/04/22
3320
玩转 ENSEMBL 数据库 (一)
lncRNAs和circRNAs数据更新及分析工具:Lnc2cancer 3.0
Lnc2Cancer 3.0由哈尔滨医科大学李霞老师和宁尚伟老师课题组开发,发表在2020年10月13日发表在Nucleic Acids Research杂志上。
作图丫
2022/03/29
8630
lncRNAs和circRNAs数据更新及分析工具:Lnc2cancer 3.0
孟德尔分析:代谢疾病相关的GWAS数据库
继上周分享了血液中的蛋白组学相关网站后➡【孟德尔随机化】血液循环中的蛋白质组:常用网站一网打尽,今天我们继续扩充孟德尔随机化GWAS数据的来源吧~
生信菜鸟团
2023/09/09
2.8K0
孟德尔分析:代谢疾病相关的GWAS数据库
Hail-GWAS教程笔记
主要参考自:Hail | GWAS Tutorial[1]本笔记旨在提供Hail功能的概述,重点是操作和查询遗传数据集的功能。我们进行了全基因组SNP关联测试,并证明了需要控制由群体分层引起的混杂。
用户1075469
2022/03/04
1.2K0
Hail-GWAS教程笔记
NatMed | 有源代码 | 多基因风险评分识别出不同类型的脂肪肝疾病
Fig. 4: mRNA expression of loci from the liver-specific (discordant) polygenic risk score is more abundant in the liver compared to the visceral adipose tissue.
生信菜鸟团
2025/01/10
1640
NatMed | 有源代码 | 多基因风险评分识别出不同类型的脂肪肝疾病
DNA语言基础模型,从DNA序列中准确预测分子表型 | Nat.Methods
- 图片说明- a,b,NT训练概述(a)及其通过微调在下游基因组预测任务中的应用(b)。通过探测进行的下游任务预测类似,但没有NT中的重新缩放权重。c,NT模型与其他基础基因组学模型在感知场大小、参数数量和我们基准中包含的18个精选下游任务性能方面的比较。d,为下游任务考虑的基因组特征的图形表示(改编自其他地方48)。- ,
生信菜鸟团
2025/02/20
2130
DNA语言基础模型,从DNA序列中准确预测分子表型 | Nat.Methods
这些功能很哇塞的植物科学数据库,你用过几个?
科学数据库不仅可以全面展示相关科研成果,同时还可以作为重要的数据及分析资源,最大化科研成果的转化率,提升同领域科研工作者的科研效率。12月盘点季,小编就给大家推荐几个超级实用的植物科学数据库...
尐尐呅
2022/04/01
8910
这些功能很哇塞的植物科学数据库,你用过几个?
GWAS综述(生信文献阅读俱乐部精选)
从具有遗传标记的复杂性状的统计学关联推进到理解影响性状的功能性遗传变异往往是一个复杂的过程。精细定位可以选择遗传变异并对其进行优先级排序以供进一步研究,但是大量的分析策略和研究设计使得选择最佳方法具有挑战性。作者回顾了不同精细绘图方法的优缺点,强调了影响性能的主要因素。主题包括全基因组关联研究(GWAS)的解释结果,连锁不平衡的作用,统计精细绘图方法,跨种族研究,基因组注释和数据整合以及其他分析和设计问题。
生信技能树
2018/11/30
5.2K0
GWAS综述(生信文献阅读俱乐部精选)
Hail-GWAS教程笔记
主要参考自:Hail | GWAS Tutorial[1]本笔记旨在提供Hail功能的概述,重点是操作和查询遗传数据集的功能。我们进行了全基因组SNP关联测试,并证明了需要控制由群体分层引起的混杂。
生信技能树
2023/02/27
6940
Hail-GWAS教程笔记
生信程序 | Nat.Genet | 在疾病关联位点精细定位因果组织和基因
生信菜鸟团
2025/02/06
1890
生信程序 | Nat.Genet | 在疾病关联位点精细定位因果组织和基因
统计遗传学:第九章,GWAS+群体分析+亲缘关系分析
本篇,使用数据和代码演示的形式,展示了GWAS分析、群体结构分析、亲缘关系分析三部分内容。我又重演了一遍,修正了一些bug。文中代码和数据我回头专门整理相关博文进行分享。
邓飞
2022/12/12
4.1K0
统计遗传学:第九章,GWAS+群体分析+亲缘关系分析
推荐阅读
相关推荐
Nature | 西湖大学,gsMap:空间+转录组+基因组+性状联合分析,可将空间基因表达与复杂性状相关联
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验