跳至主要内容

Django 2.0 - 创建第一个Django应用 - 第一部分

一般Django的网络程序开发步骤

配置开发的环境
初始化项目
启动开发服务器
创建应用
创建View
配置访问View的路由

配置项目开发环境

开发一个新的项目,第一步就是配置项目的开发环境。这里使用两个python开发环境的配置工具

pyenv:Python的版本管理工具
pipenv:官方推荐的包管理器,和pyenv配合可以快速的为每一个项目创建单独的python开发环境。

执行以下命令为教程项目创建python 3.6的开发环境

$ pipenv --python 3.6

安装Django

$ pipenv install django

检查Django的版本号,确认Django安装成功

$ pipenv run python -m django --version

________________________________

初始化项目

任何一个框架都有特定的文件结构和默认配置。django提供了django-admin这一命令行工具帮助我们初始化一个django工程的文件结构,并且初始化了一些默认配置。

$ pipenv run django-admin startproject mysite

看一下新创建的project的目录结构

mysite/
    manage.p,
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py

这几个文件的作用:

最外面的mysite文件夹是django项目的容器,它的名字不会影响django项目的运行,因此可以任意的更改名字。

manage.py: 命令行的辅助工具,用来和改工程进行交互。
内部的mysite:真正的python package。

mysite/settings.py: django工程的配置文件

mysite/url.py: django工程的路由配置文件

mysite/wsgi.py: WSGI服务器启动django工程的入口文件

________________________________

开发服务器

网络程序都是需要运行在服务器上面的。我们平常开发的时候需要一个开发服务器,方便我们随时查看代码的更开情况。当然最好还是写单元测试和集成测试。

启动开发服务器的命令:

pipenv run python manage.py runserver



开发服务器启动后,终端会输出如下信息:






默认情况下,开发服务器会运行在http://127.0.0.1:8000地址。

注意的是,刚才启动的服务器只能作为开发使用。在实际部署到生产环境的时候,我们需要使用类似apache的生产环境服务器。

________________________________

创建投票应用

采用django创建的工程包括两个层级,一个是叫工程,另外一个是工程下面的应用。一个工程可以包含多个应用。

首先在工程目录下创建一个应用

$ pipenv run manage.py startapp polls



现在我们项目的文件目录会变成如下图所示:




项目文件目录

________________________________

创建第一个View

第一步是修改polls/view.js文件,创建第一个view

每一个view对应一个python的函数,第一个参数是HttpRequest实例。HttpRequest在本教程中使用不懂,会在以后的教程中进行介绍。

from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello, world. You're at the polls index.")

第二部就是配置访问该View的路由路径。路由配置分成两个层级,一个是在应用层配置路由,另外一个是在工程层配置路由。

修改polls/urls.py配置应用层路由

from django.urls import path

from . import views

urlpatterns = [
    path('', views.index, name='index'),
]

修改mysite/urls.py配置工程层路由

from django.urls import include, path
from django.contrib import admin

urlpatterns = [
    path('polls/', include('polls.urls')),
    path('admin/', admin.site.urls),
]

这种分级的路由配置模式有利于我们对应用进行插拔。当我们需要修改、更换或者删除某个应用的时候,我们只需要将工程级路由进行更改即可。

值得注意的是开发服务器具有热更新的功能,任何代码的更新会引起服务器的自动重载。如果你发现服务器没有重载,你也可以使用下面这条命令重新启动开发服务器。

pipenv run python manage.py runserver

使用地址http://localhost:8000/polls/访问新的投票应用






投票应用

评论

此博客中的热门博文

中国研制的这套地铁隧道施工利器,比变形金刚还炫酷

  人类的铁路建设至今已有近200年的历史。   1825年,世界上第一条永久性铁路,全长31.8公里的英国斯托克顿—达灵顿铁路正式通车,标志着近代铁路运输业的开端。 人类的第一条铁路   在过去,修建铁路全靠人拉肩扛。人们将用沥青浸过的枕木铺在路基上,再由几十个人一齐合作,将长长的铁轨搬起铺在枕木上。   用这种方式铺设的铁路位置误差大,铁轨之间还留有很大的缝隙,能够容许的列车通行时速也相当低。这样修建铁路的方式不仅效率极低,同时也是对劳动者的严重摧残,美国的太平洋铁路就被人称为"每根枕木下面都有一具华工的尸骨"。   随着时代进步,列车的运行越来越快,对轨道误差控制的要求也越来越高。尤其是现如今高速铁路与城市轨道交通的修建,对轨道的平整程度要求极高,已经不再采用传统的枕木,而是以预制混凝土板作为底座,其上安装的钢轨则是以很强的预应力被牢牢钉在混凝土板上的,不会因为温度变化而发生伸缩。这样的钢轨几十公里也没有一个缝隙,可以保障列车的高速通行。 高铁的路基   不过,要想铺设这样的铁轨,凭借人力是不可能完成的,这就需要自动铺轨车的帮助。 (一)传统铺轨车应用繁琐,需要专门为它建轨道   人们应用自动铺轨车的历史已有几十年。   它类似于一种复杂的门式起重机,伴随着铁路线的延伸而向前运行。它可以在人的操纵下将几十吨重的混凝土底板和钢轨精确地放置在指定位置,相比起人工铺设,大大提高了施工效率。   传统的铺轨车虽然铺设效率很高,但为它服务却需要大量的资源和工期,其中最麻烦之处就在于,铺轨车本身也要依靠轨道才能行进。它的专用轨道虽然无需像铁路主线上的铁轨那样精密,但仍然需要事先专门修建。   在本就十分狭窄的地下铁路隧道中修建专门轨道,施工难度高,工序极其繁琐。 传统铺轨车的施工现场   此外,由于传统铺轨车必须依托铁轨进行移动,因此根本没有自主的转场能力。要想运输它,只能先行拆卸,送到施工现场再进行组装。这极大增加了现场的工程量,占用了大量的劳动力,而且拖延了工期。 地铁的施工环境十分狭小,限制了工程设备的展开   为了提高生产力,工程师们急需一种使用灵活、转场方便、自动化水平更高的铺轨车。 (二)地铁隧道里的"变形金刚"?中国研发轮式铺轨车 ...

人类在金属焊接上有什么骚操作?来了解下搅拌摩擦焊~

金属中,由于质量较轻,铝和镁常常被用于航天航空器的结构中。然而,这些轻质金属的合金可焊接性极差,用普通的熔焊工艺进行焊接,很容易出现热裂纹、气孔和夹渣等缺陷。纵使高超的技术和工艺可以降低焊接缺陷产生的概率,但熔焊时高温带来的热量和毒烟,对操作者的健康也会是巨大的威胁。   那么,有没有一种焊接技术,可以从根本上解决这些问题呢?当然有,这就是我们今天要谈的搅拌摩擦焊。 (一)搅拌摩擦焊是什么?   说起焊接,首先让人想起的大多是高温、火花四溅、保护头盔,还有保护气体等等。焊接作为一种常见的工件连接技术,能够将两种或两种以上同种或异种材料通过原子或分子之间的结合和扩散连接成一体。   目前,焊接技术已然演变为一门集材料学、工程力学、自动控制技术的交叉性学科。虽然焊接方法仍然以熔焊、压焊、钎焊三种为基础,但其下衍生出了几十种不同的焊接技术,其中包括了生活中应用最广的手弧焊、先进的激光焊和摩擦焊等。 生活中常见的焊接作业场面   与常规摩擦焊类似,搅拌摩擦焊也是利用摩擦热与塑性变形热作为焊接热源。   常规摩擦焊焊接过程中材料在压力作用下相互摩擦(工件做回转、线性等形式的相对运动,摩擦产生热量),摩擦热使得焊接的接触端面上很快形成热塑性层,接触面及附近区域温度上升,在顶锻压力的作用下,界面处的材料产生塑性变形及流动,最终形成了质量良好的焊接接头。   而搅拌摩擦焊在焊接过程中,被焊接工件之间不做相对运动,摩擦热是由搅拌针伸入工件的接缝处通过焊接工具的焊头做高速旋转运动,使其与焊接工件材料产生摩擦。 搅拌摩擦焊原理示意图,焊接过程可简化为旋转-插入-塑化-焊接   焊接过程中,搅拌针高速旋转并在压力作用下插入材料内部进行搅拌摩擦生热,同时焊头的肩部与工件表面摩擦生热,焊头边高速旋转边沿工件的接缝方向与工件发生相对移动,于是焊头前面的材料发生强烈塑性变形,随着焊头沿着焊缝走向移动,高度塑性变形的材料不断被搅拌针搅拌到背后,在主轴离开后,热塑性状态的材料冷却固化,从而形成一条搅拌摩擦焊的焊缝。   搅拌摩擦焊的技术原理并不复杂,需要控制的参数也不多,不过这并不代表搅拌摩擦焊设备没有技术难度,实际上,焊接设备及夹具的刚性对搅拌摩擦焊是极端重要的,对大型工件的焊接而言尤甚。   摩擦焊技术焊接质量稳定、焊件尺寸精度高、焊接生产率高、...

这款新型声呐,让中国反潜技术跨入国际一流梯队

        反潜战最关键在于掌握潜艇踪迹,没有精确的目标信息,再强大的反潜火力也将无的放矢,而搜索潜艇最重要的手段便是各种类型的声呐。 (一)何为声呐?   声呐是利用水中声波对水下目标进行探测、定位和通信的电子设备,能够判断海洋中物体的存在、位置及类型,同时也用于水下信息的传输。 声呐原理图   水面舰艇声呐按照工作模式分为主动声呐与被动声呐,以安装部署位置又分为舰壳声呐与拖曳声呐。   早期声呐均采取龙骨以下安装并做成流线型的舰壳声呐部署方式,舰壳声呐最大的优点是直接固定在水线下,舰体部分阻力较低,不影响水面舰艇机动,且舰艇高速机动时仍可有效工作,直到今天舰壳声呐仍然是水面舰艇反潜探测的重要探测设备。   如今中国多型水面舰艇也可明显看到安装在球鼻首的主/被动中频舰壳声呐。 现代军舰的球鼻艏直接与海水联通,内部通常安装主动声呐的中频率水声换能器,用来发射和接收超声波信号   不过,舰壳声呐也有一些不足之处,它的探测距离近,且易受噪音影响。 声速从海面起随水深增加时,声信号因折射作用而被水体表层的波导通道捕获,因而布设位置较浅的舰壳声呐作用距离都不远 (二)拖曳声呐:离得远听得清   为克服传播损耗与舰体自噪音对声呐的影响,最好的办法即是将声呐布设在远离舰体的水下,也就是拖曳声呐。   拖曳声呐一般长1-2千米,它并不是水平漂浮的,而是斜向下深入500米左右的水中,是潜艇所能达到的深度,以避开温跃层、盐跃层的限制更好地监听周边环境噪音。   拖曳声呐又可细分为拖曳体声呐与拖曳线列声呐。前者可理解为将原有的舰壳声呐拖曳于水下密封拖曳体内,从而避开各跃变层与舰体自噪音的影响。不过它与舰壳声呐一样因拖受到基阵布置空间的限制,声阵孔径难以进一步增大,工作频率继续降低。   而拖曳线列声呐则是将一定间隔的水听器,以线列阵型式布置到具有中性浮力的透声保护导管内,由于摆脱了舰壳与拖体的束缚,线列阵声呐要提高水听器数量只需增长拖体长度即可获得更长的基线长度与更大的基阵,从而利于探测远程目标。 拖曳线列声呐在柔性软管里布满了十分灵敏的水听器,图为国产SJG-206拖曳线列阵声呐   拖曳线列阵声呐的另一个优势则是因工作深度较深,在深海区域可充分利用水声汇聚区效益提高探测距离...