Django Girls 教程 阅读笔记

原文链接:https://tutorial.djangogirls.org/zh/

为什么要安装代码编辑器

你可能会疑惑为什么我们要安装代码编辑器软件,而不是使用如 Word 或记事本这样的软件。

第一个理由是代码应该是 纯文本,如 Word 和Textedit的程序实际上不能产生纯文本,它们产生富文本 (含有字体和格式),使用自定义的格式,如 RTF (Rich Text Format).

第二个原因是代码编辑器专长于编辑代码,因此它们可以提供一些有用的功能,比如代码高亮,比如自动闭合引用号。

命令行

命令行的其他名字是: cmd,CLI、 提示符、 控制台 或 终端.

当有人向你的服务器请求一个网站,会发生什么呢?

当一个请求到达网站服务器,它会被传递到Django,试图找到实际上什么是被请求的。 它首先会拿到一个网页的地址,然后试图去弄清该做什么。 这个部分是由Django的urlresolver(url解析器。注意一个网站的地址被叫做URL,统一资源定位器,所以url解析器是有意义的)。 它并不十分聪明,他接受一个模式列表,然后试图去匹配 URL。 Django从顶到底检查模式,如果有匹配上的,那么Django会将请求传递给相关的函数(这被称作视图)。).

想象一个邮递员拿着一封信。 她沿着街区走下去,检查每一个房号与信件地址是否对应。 如果匹配上了,她就把信投在那里。 这也是url解析器的工作方式!

在视图函数里做了很多有趣的事情:我们能在数据库中寻找到一些信息。 如果用户要求修改数据呢? 就像一封信里说,“请修改我的工作描述”,视图 将检查是否你允许它这么干,然后更新工作描述并发回一个消息:“做完了”。 然后视图生成响应,并且Django能够发送给用户的web浏览器。

部署

正如你所学习的,一个网站必须要放到一个服务器上。 在互联网上你可以找到很多的服务器供应商。 我们将使用一个相对简单的部署过程: PythonAnywhere(https://www.pythonanywhere.com/)。 PythonAnywhere 对于一些没有太多访问者的小应用是免费的,所以它对你来说绝对是足够使用的。

其它我们将使用到的外部服务是GitHub,它是一个代码托管服务。 还有其它的一些服务,但当今几乎所有的程序员都有 GitHub 帐户,并且现在你也会有的!

当然注册完 PythonAnywhere,你讲会转到仪表盘或“控制台”页面。 选择启动“Bash”控制台这一选项 — 这是 PythonAnywhere 版的控制台,就像你本地电脑上的一样。

注意 PythonAnywhere 基于 Linux,因此如果你使用 Windows,控制台将会和你本地电脑上的略有不同。

让我们通过创建一个我们仓库的 “Clone” 以便从 GitHub 拉取代码到 PythonAnywhere。 在 PythonAnywhere 控制台输入以下 (不要忘记使用 GitHub 用户名替换 ):

$ git clone https://github.com/<your-github-username>/my-first-blog.git

这将会拉取一份你的代码副本到 PythonAnywhere 上。通过键入tree my-first-blog 查阅:

$ tree my-first-blog
my-first-blog/
├── blog
│   ├── __init__.py
│   ├── admin.py
│   ├── migrations
│   │   ├── 0001_initial.py
│   │   └── __init__.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
├── manage.py
└── mysite
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

如同你在自己电脑上做的,你可以在 PythonAnywhere 上创建 virtualenv 虚拟环境。在 Bash 控制台下,键入:

$ cd my-first-blog

$ virtualenv --python=python3.4 myvenv
Running virtualenv with interpreter /usr/bin/python3.4
[...]
Installing setuptools, pip...done.

$ source myvenv/bin/activate

(mvenv) $  pip install django whitenoise
Collecting django
[...]
Successfully installed django-1.8.2 whitenoise-2.0

收集静态文件

你可曾好奇,什么是”whitenoise”白噪音? 它是用来服务所谓的“static files”静态文件的工具。 静态文件是很少改动或者并非可运行的程序代码的那些文件,比如 HTML 或 CSS 文件。 在我们的计算机上,它们以不同的方式工作,我们需要比如“whitenoise”这样的工具来为其服务。

我们只需要在服务器上运行一个额外的命令,就是 collectstatic。 它告诉 Django 去收集服务器上所有需要的静态文件。 就眼下来说主要是使admin管理界面看起来更漂亮的文件。

(mvenv) $ python manage.py collectstatic

You have requested to collect static files at the destination
location as specified in your settings:

/home/edith/my-first-blog/static

This will overwrite existing files!
Are you sure you want to do this?

Type 'yes' to continue, or 'no' to cancel: yes

键入 “yes”, 然后它会自行运转!

在 PythonAnywhere 上创建数据库

服务器与你自己的计算机不同的另外一点是:它使用不同的数据库。因此用户账户以及文章和你电脑上的可能会有不同。

我们可以像在自己的计算机上一样在服务器上初始化数据库,使用 migrate 以及 createsuperuser:

(mvenv) $ python manage.py migrate
Operations to perform:
[...]
  Applying sessions.0001_initial... OK


(mvenv) $ python manage.py createsuperuser

Context | Request Context

将我们的博客发布为一个网络应用程序

现在我们的代码已在PythonAnywhere上,我们的 virtualenv 已经准备好,静态文件已收集,数据库已初始化。我们准备好发布网络应用程序!

通过点击 logo 返回到 PythonAnywhere 仪表盘,然后点击 Web 选项卡。最终,点 Add a new web app.

在确认你的域名之后,选择对话框中 manual configuration (注 不是 “Django” 选项) : 下一步选择 Python 3.4,然后点击 Next 以完成该向导。

注意 确保你选中 "Manual configuration" 选项,而不是 "Django" 那个。

设置 virtualenv

你将会被带到 PythonAnywhere 上你的Web 应用程序的配置屏,那个页面是每次你想修改服务器上你的应用程序时候要去的页面。
这里写图片描述

在 “Virtualenv” 一节,点击红色文字 “Enter the path to a virtualenv”,然后键入: /home//my-first-blog/myvenv/。 前进之前,先点击有复选框的蓝色框以保存路径。

注意 替换你自己的用户名。如果你犯了错,PythonAnywhere 会显示一个小警告。

配置 WSGI 文件

Django 使用 “WSGI 协议”,它是用来服务 Python 网站的一个标准。PythonAnywhere 支持这个标准。 PythonAnywhere 识别我们 Django 博客的方式是通过配置 WSGI 配置文件。
点击 “WSGI configuration file” 链接(在 “Code” 一节,接近页面上方 — 它将被命名为如 /var/www/_pythonanywhere_com_wsgi.py),然后跳转到一个编辑器。

删除所有的内容并用以下内容替换:

import os
import sys

path = '/home/<your-username>/my-first-blog'  # use your own username here
if path not in sys.path:
    sys.path.append(path)

os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'

from django.core.wsgi import get_wsgi_application
from whitenoise.django import DjangoWhiteNoise
application = DjangoWhiteNoise(get_wsgi_application())

这个文件的作用是告诉 PythonAnywhere 我们的Web应用程序在什么位置,Django 设置文件的名字是什么。它也设置 “whitenoise” 静态文件工具。

点击 Save 然后返回到 Web 选项卡。

一切搞定!点击大大的绿色 Reload 按钮然后你将会看到你的应用程序。页面的顶部可以看到它的链接。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值