(二)Django2——创建项目

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013967628/article/details/82916570

在创建项目之前要先了解一下项目环境概念。

首先注意一下Python与Django版本,本系列是基于Django2.0以后,所以对应的Python版本至少是3.4。

正是由于Python3与Python2版本之间区别比较大,并且Python3并不会向下兼容Python2,所以对于不同的项目要使用不同的环境开发,所以在创建此项目之前,创建一个新的环境。

创建项目、应用

使用Anaconda Prompt 工具

1.查看环境列表

conda env list

展示位环境名称  环境目录,在目录前面的星号代表此时应用的环境

2.创建环境

在Python安装目录/envs/中执行下面命令,创建一个my_env的环境

conda create -n my_env

创建之后会在envs目录中创建一个my_env的文件夹

3.激活环境

activate my_env

激活环境之后在输入查看环境列表命令,星号会移到刚才激活的环境目录前,说明此时应用刚才激活的环境

ps:每次重启Anaconda Prompt 工具,需要重新激活

4.安装安装Django

conda install django

5.创建项目

先指定一个项目的目录(工作空间),cd到对应目录

django-admin startproject mysite .

这行代码将会在当前目录下创建一个 mysite 目录,让我们看看 startproject创建了些什么:

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

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

  • 最外层的:file: mysite/ 根目录只是你项目的容器, Django 不关心它的名字,你可以将它重命名为任何你喜欢的名字。
  • manage.py: 一个让你用各种方式管理 Django 项目的命令行工具。
  • 里面一层的 mysite/ 目录包含你的项目,它是一个纯 Python 包。它的名字就是当你引用它内部任何东西时需要用到的 Python 包名。 (比如 mysite.urls).
  • mysite/__init__.py:一个空文件,告诉 Python 这个目录应该被认为是一个 Python 包。
  • mysite/settings.py:Django 项目的配置文件
  • mysite/urls.py:Django 项目的 URL 声明,就像你网站的“目录”。
  • mysite/wsgi.py:作为你的项目的运行在 WSGI 兼容的Web服务器上的入口。

6.启动项目

查看项目是否创建成功,在mysite/目录项,即manage.py同级目录下执行如下命令

python manage.py runserver

将会打印

Performing system checks...

System check identified no issues (0 silenced).

You have unapplied migrations; your app may not work properly until they are applied.
Run 'python manage.py migrate' to apply them.

十月 01, 2018 - 15:50:53
Django version 2.0, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

刚刚启动的是 Django 自带的用于开发的简易服务器,它是一个用纯 Python 写的轻量级的 Web 服务器。我们将这个服务器内置在 Django 中是为了让你能快速的开发出想要的东西,因为你不需要进行配置生产级别的服务器(比如 Apache)方面的工作,除非你已经准备好投入生产环境了。

现在是个提醒你的好时机:千万不要 将这个服务器用于和生产环境相关的任何地方。这个服务器只是为了开发而设计的。(我们在 Web 框架方面是专家,在 Web 服务器方面并不是。)

现在,服务器正在运行,浏览器访问 https://127.0.0.1:8000/。你将会看到一个“祝贺”页面,随着一只火箭发射,服务器已经运行了。

更换端口

默认情况下,runserver 命令会将服务器设置为监听本机内部 IP 的 8000 端口。

如果你想更换服务器的监听端口,请使用命令行参数。举个例子,下面的命令会使服务器监听 8080 端口:

python manage.py runserver 8080

7.创建应用

刚才所创建的项目实际上是创建的开发环境,在 Django 中,每一个应用都是一个 Python 包,并且遵循着相同的约定。Django 自带一个工具,可以帮你生成应用的基础目录结构,这样你就能专心写代码,而不是创建目录了。

项目 VS 应用

项目和应用有啥区别?应用是一个专门做某件事的网络应用程序——比如博客系统,或者公共记录的数据库,或者简单的投票程序。项目则是一个网站使用的配置和应用的集合。项目可以包含很多个应用。应用可以被很多个项目使用。

你的应用可以存放在任何 Python path中定义的路径。而在这里,我们将在 manage.py 同级目录下创建博客应用。这样它就可以作为顶级模块导入,而不是 mysite 的子模块。

确定现在处于 manage.py 所在的目录下,然后运行这行命令来创建一个应用:

python manage.py startapp blog

将会创建一个blog的目录,目录结构如下

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

编写第一个视图

打开blog/views.py,输入一下代码

from django.http import HttpResponse


def index(request):
    return HttpResponse("Hello, world.")

这是 Django 中最简单的视图。如果想看见效果,我们需要将一个 URL 映射到它——这就是我们需要 URLconf 的原因了。

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

blog/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    urls.py
    views.py

在urls.py输入如下代码

from django.urls import path

from . import views

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

下一步是要在根 URLconf 文件中指定我们创建的 blog.urls 模块。在 mysite/urls.py 文件的 urlpatterns 列表里插入一个 include(), 如下:

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

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

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

设计 include()的理念是使其可以即插即用。因为应用有它自己的 URLconf( blog/urls.py ),他们能够被放在 "/blog/" , "/fun_blog/" ,"/content/blog/",或者其他任何路径下,这个应用都能够正常工作。

启动项目,在manage.py同级目录下执行

python manage.py runserver

用你的浏览器访问 http://localhost:8000/blog/

将会在页面中输出Hello, world.

猜你喜欢

转载自blog.csdn.net/u013967628/article/details/82916570
今日推荐