Windows 10 环境下Django2.0入门指南(一)

<此文是在参考《一个完整的Django入门指南 - 第1部分》进行学习的时候,根据Windows 10系统及Django2.0中不同的部分写下的。原文地址如下:http://mp.weixin.qq.com/s/EsZSAo7tiY3gktWBPrB_zA

  • 代码块高亮

前言

作为一位刚刚入门的Python小白,从今天起,我将开始学习使用Django2.0开发一个网站,我将在这里记录我每阶段中遇到的问题与解决方法,希望能为后来者提供一点帮助。

安装

我们需要做的第一件事是在我们的电脑上安装一些程序,以便能够开始使用django。基本的设置包括安装Python,Virtualenv和Django。

使用虚拟环境不是强制性的,但是我还是强烈建议大家这样做。

当你在用 Django 开发一个网站或者一个Web项目的时候,不得不安装外部库以支持开发是非常常见的事情。使用虚拟环境,你开发的每个项目都会有其独立的环境。这样的话,包之间的依赖关系不会发生冲突。同时也使得你能在不同Django版本上运行的本地机器的项目。

安装Python3.6.4

我们想要做的第一件事是安装最新版的Python,我开始学习Python的时候,那就是3.6.4,若有更新的版本,请使用新版。

我们将使用Python 3,因为大部分主要的Python库已经被移植到python 3,并且Django2.0版本不再支持python 2。所以Python 3是正确的选择。

推荐从https://www.python.org/ 安装文件,由于我使用的是64位Windows 10系统,因此 我下载的是Python3.6.4(64bit),请挑选适合自己系统的文件下载,安装步骤应该是一致的。

安装完成后,在命令行窗口输入 python 命令并回车,将会出现以下

C:\Users\aaa>python
Python 3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:54:40) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

其中“aaa ”代表你的计算机名字。

很棒,python已经启动并正在运行。下一步:虚拟环境!

安装Virtualenv

接下来这一步,我们将通过pip(一个管理和安装Python包的工具)来安装Virtualenv。

在终端中,执行下面的命令:

C:\Users\aaa>pip3 install virtualenv

等待安装成功。
到目前为止,我们执行的安装都是在操作系统环境下运行的。从现在开始,我们安装的所有东西,包括django本身,都将安装在虚拟环境中。

这样想一下:对于你开始的每个Django项目,你首先会为它创建一个虚拟环境。这就像每个Django项目都有一个沙盒。所以你随意运行,安装软件包,卸载软件包而不会破坏任何东西。

我习惯在电脑上创建一个名为Development的文件夹。然后,我用它来组织我所有的项目和网站。但你也可以按照接下来的步骤创建适合你自己的目录。

通常,我首先在Development文件夹中创建一个项目名称的新文件夹。既然这将是我们第一个项目,我们没必要挑选一个独特的名字。现在,我们可以称之为myproject。
这个文件夹是级别较高的目录,将存储与我们的Django项目相关的所有文件和东西,包括它的虚拟环境。

所以让我们开始创建我们的第一个虚拟环境并安装django。

在myproject文件夹中:

D:\Development\myproject>venv\Scripts\activate
D:\Development\myproject>virtualenv venv -p python
Running virtualenv with interpreter D:\Program Files\Python\Python36\python.exe
Using base prefix 'D:\\Program Files\\Python\\Python36'
New python executable in D:\Development\myproject\venv\Scripts\python.exe
Installing setuptools, pip, wheel...done.

这样我们的虚拟环境就创建好了。在开始使用它之前,我们需要先激活一下环境:

D:\Development\myproject>venv\Scripts\activate

如果你在命令行前面看到 (venv),就代表激活成功了。

让我们试着了解一下这里发生了什么。我们创建了一个名为venv的特殊文件夹。该文件夹内包含了一个python的副本。在我们激活了venv环境之后,当我们运行Python命令时,它将使用我们存储在venv里面的本地副本,而不是我们之前在操作系统中安装的那个。

另一个重要的事情是,pip程序也已经安装好了,当我们使用它来安装Python的软件包(比如Django)时,它将被安装在venv环境中。

顺便说一句,要想退出venv环境,运行下面的命令:

(venv) D:\Development\myproject>deactivate

但是,我们现在先保持激活状态来进行下一步。

安装Django2.0.3

很简单,现在我们已经启动了venv,运行以下命令来安装django:

(venv) D:\Development\myproject>pip install Django
Collecting Django
  Using cached Django-2.0.3-py3-none-any.whl
Collecting pytz (from Django)
  Using cached pytz-2018.3-py2.py3-none-any.whl
Installing collected packages: pytz, Django
Successfully installed Django-2.0.3 pytz-2018.3

现在一切就绪!

启动一个新项目,执行下面的命令来创建一个新的 Django 项目:

(venv) D:\Development\myproject>django-admin startproject myproject

命令行工具django-admin会在安装Django的时候一起自动安装好。

执行了上面的命令以后,系统会为Django项目生成基础文件夹结构。

现在,我们的myproject目录结构如下所示:

myproject/                  <-- 高级别的文件夹
 |-- myproject/             <-- Django项目文件夹
 |    |-- myproject/
 |    |    |-- __init__.py
 |    |    |-- settings.py
 |    |    |-- urls.py
 |    |    |-- wsgi.py
 |    +-- manage.py
 +-- venv/                  <-- 虚拟环境文件夹

我们最初的项目结构由五个文件组成:

manage.py:使用django-admin命令行工具的快捷方式。它用于运行与我们项目相关的管理命令。我们将使用它来运行开发服务器,运行测试,创建迁移等等。
__init.py:这个空文件告诉python这个文件夹是一个python包。
settings.py:这个文件包含了所有的项目配置。将来我们会一直提到这个文件!
urls.py:这个文件负责映射我们项目中的路由和路径。例如,如果你想在访问URL / about/ 时显示某些内容,则必须先在这里做映射关系。
wsgi.py:该文件是用于部署的简单网关接口。你可以暂且先不用关心她的内容,就先让他在那里就好了。

django自带了一个简单的网络服务器。在开发过程中非常方便,所以我们无需安装任何其他软件即可在本地运行项目。我们可以通过执行命令来测试一下它:

(venv) D:\Development\myproject\myproject>python manage.py runserver
Performing system checks...

System check identified no issues (0 silenced).

You have 14 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
March 29, 2018 - 20:50:58
Django version 2.0.3, using settings 'myproject.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

现在,你可以忽略终端中出现的迁移错误;我们将在稍后讨论。

在你的浏览器里访问 http://127.0.0.1:8000/ . 你会看到一个有火箭起飞的 “Congratulations!” 页面,那么它已经开始工作了。

使用组合键 Ctrl+ C 来终止开发服务器。

Django应用

在Django的哲学中,我们有两个重要的概念:

app:是一个可以做完成某件事情的Web应用程序。一个应用程序通常由一组models(数据库表),views(视图),templates(模板),tests(测试) 组成。

project:是配置和应用程序的集合。一个项目可以由多个应用程序或一个应用程序组成。

请注意,如果没有一个project,你就无法运行Django应用程序。像博客这样的简单网站可以完全在单个应用程序中编写,例如可以将其命名为blog或weblog。

这是组织源代码的一种方式。现在刚开始,判断什么是或不是应用程序这些还不太重要。包括如何组织代码等。现在不用担心那些问题!首先让我们对Django的API和基础知识进行梳理一遍。

好的!那么,为了方便说明,我们来创建一个简单的网络论坛或讨论区。要创建我们的第一个应用程序,请跳转到manage.py文件所在的目录并执行以下命令:

(venv) D:\Development\myproject\myproject>django-admin startapp boards

注意!我们这次使用的命令是startapp。

通过这条指令,系统会给我们创建以下目录结构:

myproject/
 |-- myproject/
 |    |-- boards/                <-- 我们新的Django应用(app)!
 |    |    |-- migrations/
 |    |    |    +-- __init__.py
 |    |    |-- __init__.py
 |    |    |-- admin.py
 |    |    |-- apps.py
 |    |    |-- models.py
 |    |    |-- tests.py
 |    |    +-- views.py
 |    |-- myproject/
 |    |    |-- __init__.py
 |    |    |-- settings.py
 |    |    |-- urls.py
 |    |    |-- wsgi.py
 |    +-- manage.py
 +-- venv/

下面,我们来探讨每个文件的作用:

migrations/:在这个文件夹里,Django会存储一些文件以跟踪你在models.py文件中创建的变更,用来保持数据库和models.py的同步。
admin.py:这个文件为一个django内置的应用程序Django Admin的配置文件。
apps.py:这是应用程序本身的配置文件。
models.py:这里是我们定义Web应用程序数据实例的地方。models会由Django自动转换为数据库表。
tests.py:这个文件用来写当前应用程序的单元测试。
views.py:这是我们处理Web应用程序请求(request)/响应(resopnse)周期的文件。

现在我们创建了我们的第一个应用程序,让我们来配置一下项目以便启用这个应用程序。

要做到这一点,打开settings.py并尝试找到INSTALLED_APPS变量:

settings.py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

如你所见,Django默认已经安装了6个内置应用程序。它们提供大多数Web应用程序所需的常用功能,如身份验证,会话,静态文件管理(图像,JavaScript,CSS等)等。

我们将会在本系列教程中探索这些应用程序。但现在,先不管它们,只需将我们的应用程序boards添加到INSTALLED_APPS列表即可:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    'boards',  # 建议和作者一样空一行来区别内置app和自定义的app
]

Hello World!

现在来写我们的第一个视图(view)。我们将在下一篇教程中详细探讨它。但现在,让我们试试看看如何用Django创建一个新页面。

打开boards应用程序中的views.py文件,并添加以下代码:

views.py

from django.http import HttpResponse

def index(request):
    return HttpResponse('Hello, World!')

这可能是 Django 里最简单的视图,要调用视图,我们需要把它映射到一个 URL —— 要这样我们还需要一个 URLconf。
在 boards 目录创建一个 URLconf 只要创建一个叫 urls.py 文件即可。你的app的目录现在看起来会是这个样子:

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

boards/urls.py 文件中的代码如下:

#boards/urls.py
from django.urls import path

from . import views

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

下一步是让主 URLconf 链接到 boards.urls 模块。 在 myproject/urls.py 里,导入 django.urls.include 并在 urlpatterns 列表中插入一个 include()(这里少一个链接),代码如下:

# myproject/urls.py
from django.urls import include, path
from django.contrib import admin

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

现在已经将 index 视图连接到 URLconf。让我们运行下面的命令来验证它的工作状态:

(venv) D:\Development\myproject\myproject>python manage.py runserver

在浏览器中访问 http://localhost:8000/boards/ ,你应该可以看到你在 index 视图中定义的内容: “Hello, world!”
hello world!
就是这样!我们刚刚创建成功了第一个视图。

总结

这是Django2.0入门的第一天,在今天,我们学习了如何安装最新的Python版本以及如何设置开发环境。我们还介绍了虚拟环境,开始了我们的第一个django项目,并已经创建了我们的初始应用程序。

在我完成第二部分的学习后,我将继续更新。

参考文章

[1] http://mp.weixin.qq.com/s/EsZSAo7tiY3gktWBPrB_zA
[2] http://www.cnblogs.com/resn/p/8341173.html


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值