企业级开发框架---Django(二)

1.2 实战演练:开发Django站点

用Django开发网站需要遵循Django的一套开发流程。本节通过建立一个消息录入页面演示Django的开发流程及相关技术。

     1.2.1 建立项目

在进行项目之前,需要先用django-admin建立Django项目,语法如下:

#django-admin startproject 项目名称

其中django-admin是安装好的Django组件后再Python目录中生成的Django项目管理工具,比如,建立一个叫做djangosite的开发项目,命令如下:

#django-admin startproject djangosite

该命令在当前目录中建立了一个子目录djangosite,并在其中生成了Django开发默认的文件,djangosite的目录内容如下:

djangosite/
    manange.py
    djangosite/
        __init__.py
        settings.py
        urls.py
        wsgi.py

默认生成的几个文件都非常重要,在今后的开发中要一直使用或者维护它们,对它们的意义解释如下:

· manage.py:Django用于管理本项目的命令行工具,之后进行项目运行,数据库自动生成,静态文件收集等要通过该文件完成。

· 内层djangosite/目录中包含了本项目的实际文件,同时因为其中包含__init__.py文件,所以该项目也是一个Python包。

· djangosite/__init__.py:告诉Python该项目是一个Python包,其中暂无内容。

· djangosite/settings.py:Django的项目配置文件。默认时,在其中定义了本项目引用的Django组件、Django项目名等,在之后的开发中,还需要在其中配置数据库参数,导入其他的Python包。

· django/urls.py:维护项目的URL路由映射,即定义客户端访问的URL由哪一个Python木模块解释并提供反馈。在默认的情况下,其中只定义了"/admin"即管理员站点的解释器。

· djangosite/wsgi.py:定义了WSGI的接口信息,用于其他Web服务集成,一般文件在生成后无须改动

      1.2.2 建立连接

为了在项目中开发符合MVC架构的实际应用程序,我们需要在项目中建立Django应用。每个Django项目可以包含多个Django应用。建立应用的语法如下:

#python3 manage.py startapp 应用名称

其中的manage.py是建立项目时在项目目录中生产的命令行工具,startapp是命令的关键字,举例如下:

#cd djangosite
#python3 manage.py startapp app

命令行完成后会在项目目录中建立如下目录文件结构:

app/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    views.py

对其中的功能解析如下:

· __init__.py:其中暂无内容,该文件的而存在使得app成为一个Python包。

· admin.py:管理站点模型的声明文件,默认为空

· apps.py:应用信息定义文件。在其中生成了类AppConfig,该类用于定义应用名等Meta数据

· migrations包:用于在之后定义引用迁移功能。 

· models.py:添加模型层数据类的文件。

· test.py:测试代码文件。

· views.py:定义URL响应函数

以上所有文件在应用刚建立的时没有实际内容,需要在开发者进一步编写代码完成其功能。

1.2.3 基本视图

在完成Django项目和应用的建立后,即可开始编写网站的应用代码,这里通过为注册页面显示一个欢迎标签,来演示Django的路由映射功能。

(1)首先在djangosite/app/views.py中建立一个路由响应函数。

from django.http import HttpResponse

def weclome(request):
    return HttpResponse('<1>welcome to my tiny teitter!</h1>')

该代码定义了一个函数weclome(),简单地返回一条被HttpResponse()封装的Weclome信息。

(2)接下来,要通过URL映射将影虎的HTTP访问与该函数绑定起来。

在djangosite/app/目录中新建一个urls.py文件,管理应用app中的所有URL映射,其文件内容为:

from django.conf.urls import url
from . import views

urlpatterns = p[
    url(r'',views.weclome),
]

在其中第一行引入了django.conf.url中的url()函数,Django中的所有路由映射由该函数生成。第2行代码引入了views.py模块。之后定义了关键变量urlpatterns,改变了是一个列表,保存了所有由url()函数生成的路由映射。本代码中只设置了一个映射,即,把所有路由映射到views.py中的weclome函数。

(3)在项目URL文件djangosite/urls的urlpatterns中增加一项,声明对应用app中url.py文件引用,代码如下:

from django.conf.urls import url
from django.contrib import admin
from django.conf.urls import include

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'app/',include('app.urls'))
]

首先通过import语句引入django.conf.urls.include()函数,之后再urlpatterns列表中增加一个路径app/,将其转接到app.urls包,即djangosite/app/urls.py文件。这样通过incluede()函数将两个urlpatterns链接了起来。

注意:url()函数的第一个参数用正则表达式来表达URL路由,本例中^app/的含义是所有以app开头的路由
 

 


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值