Django 2.1.7 建立项目

参考文献

Django 2.2 官方文档html

近期打算基于django最新版本写一套监控类管理系统,以该项目为例,讲解django如何建立项目。python

在监控类管理系统,对于运维开发这块一定存在不少功能模块,例如 资产管理、中间件监控(memcached、redis等),还有ansible远程调用批量处理模块等等。web

这么多的模块应该怎么拆分去写呢?redis

在django中,项目的组织结构为一个项目包含多个应用,一个应用对应一个业务模块。也就是说,上面说的那么多个功能模块,能够分开多个应用去逐个编写,逐个击破。数据库

安装Django 2.1.7

pip3 install django==2.1.7django

示例

建立项目的名称为mysite,完成"资产-中间件"信息的维护,建立应用名称为assetinfo。浏览器

建立项目

django-admin startproject 项目名称bash

$ django-admin startproject mysite

$ ls mysite/
manage.py*  mysite/
复制代码

能够看到已经建立好了mysite项目目录。使用pycharm打开项目。服务器

能够看到项目已经自动建立了很多目录了,其中里面存在了一个mysite的文件夹。app

这些目录和文件的用处是:

  • 最外层的 mysite/ 根目录只是你项目的容器, Django 不关心它的名字,你能够将它重命名为任何你喜欢的名字。
  • manage.py: 一个让你用各类方式管理 Django 项目的命令行工具。你能够阅读 django-admin and manage.py 获取全部 manage.py 的细节。
  • 里面一层的 mysite/ 目录包含你的项目,它是一个纯 Python 包。它的名字就是当你引用它内部任何东西时须要用到的 Python 包名。 (好比 mysite.urls).
  • mysite/__init__.py:一个空文件,告诉 Python 这个目录应该被认为是一个 Python 包。若是你是 Python 初学者,阅读官方文档中的 更多关于包的知识
  • mysite/settings.py:Django 项目的配置文件。若是你想知道这个文件是如何工做的,请查看 Django settings 了解细节。
  • mysite/urls.py:Django 项目的 URL 声明,就像你网站的“目录”。阅读 URL调度器 文档来获取更多关于 URL 的内容。
  • mysite/wsgi.py:做为你的项目的运行在 WSGI 兼容的Web服务器上的入口。阅读 如何使用 WSGI 进行部署 了解更多细节。

用于开发的简易服务器

让咱们来确认一下你的 Django 项目是否真的建立成功了。若是你的当前目录不是外层的 mysite 目录的话,请切换到此目录,而后运行下面的命令:

$ python3 manage.py runserver

在这里若是不对urls.py进行修改,直接启动就会报错。错误参见Django 2.1.7 runserver启动直接报错.

首先须要修改urls.py文件代码以下:

from django.contrib import admin
from django.urls import include, path # 增长导入include方法

urlpatterns = [
    path('admin/', admin.site.urls),
]
复制代码

而后再次启动开发服务,以下:

建立应用

使用一个应用开发一个业务模块,此处建立应用名称为assetinfo,完成资产-中间件的信息维护。

建立应用的命令以下: python3 manage.py startapp assetinfo

能够看到,执行命令以后,就建立了一个应用名的文件夹,并自动生成了相关文件,下面对文件说明以下:

  • _init.py_是一个空文件,表示当前目录assetinfo能够看成一个python包使用。
  • tests.py文件用于开发测试用例,在实际开发中会有专门的测试人员,这个事情不须要咱们来作。
  • models.py文件跟数据库操做相关。
  • views.py文件跟接收浏览器请求,进行处理,返回页面相关。
  • admin.py文件跟网站的后台管理相关。
  • migrations文件夹以后给你们介绍。

编写第一个视图

让咱们开始编写第一个视图吧。打开 assetinfo/views.py,把下面这些 Python 代码输入进去:

from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello, world. You're at the assetinfo index.")
复制代码

这是 Django 中最简单的视图。若是想看见效果,咱们须要将一个 URL 映射到它——这就是咱们须要 URLconf 的缘由了。

为了建立 URLconf,请在 assetinfo 目录里新建一个 urls.py 文件。你的应用目录如今看起来应该是这样:

在 assetinfo /urls.py 中,输入以下代码:

from django.urls import path

from . import views

urlpatterns = [
    path('', views.index, name='index'),
]
复制代码

下一步是要在根 URLconf 文件中指定咱们建立的 assetinfo.urls 模块。在 test1/urls.py 文件的 urlpatterns 列表里插入一个 include(), 以下:

from django.contrib import admin
from django.urls import include, path # 增长导入include方法

urlpatterns = [
    path('assetinfo/', include('assetinfo.urls')), # 导入assetinfo应用的urls.py
    path('admin/', admin.site.urls),
]
复制代码

函数 include() 容许引用其它 URLconfs。每当 Django 遇到 :func:~django.urls.include 时,它会截断与此项匹配的 URL 的部分,并将剩余的字符串发送到 URLconf 以供进一步处理。

设计 include() 的理念是使其能够即插即用。由于应用有它本身的 URLconf( assetinfo/urls.py ),他们可以被放在 "/assetinfo/" , "/fun_assetinfo/" ,"/content/assetinfo/",或者其余任何路径下,这个应用都可以正常工做。

如今把 index 视图添加进了 URLconf。能够验证是否正常工做,运行下面的命令:

python3 manage.py runserver

用你的浏览器访问 http://localhost:8000/assetinfo/,你应该可以看见 "Hello, world. You're at the polls index." ,这是你在 index 视图中定义的。

启动开发web服务

在开发阶段,为了可以快速预览到开发的效果,django提供了一个纯python编写的轻量级web服务器,仅在开发阶段使用。

运行服务器命令以下:

python3 manage.py runserver ip:port
例:
python3 manage.py runserver
复制代码

能够不写IP和端口,默认IP是127.0.0.1,默认端口为8000。

相关文章
相关标签/搜索