安装Git

Git是一个被大量程序员使用的”版本控制系统”。此软件可以跟踪任何时间文件的改变,这样你以后可以随时召回某个特定版本。

windows系统下面可以下载git-scm安装。除了第5步”Adjusting your PATH environment”, 需要选择”Run Git and associated Unix tools from the Windows command-line”(底部的选项)。除此之外,默认值都没有问题。

Linux系统的安装使用包管理器安装

  1. 1
    2
    3
  1. sudo apt-get install git
    # or
    sudo yum install git

Git版本库

首先初始化仓库

  1. 1
    2
    3
    4
  1. $ git init
    Initialized empty Git repository in ~/simpleblog/.git/
    $ git config --global user.name "yidao620c"
    $ git config --global user.email yidao620@gmail.com

每个项目我们只需要初始化一次Git仓库(而且你从此不需要重新输入用户名和邮箱)

Git会追踪这个目录下所有文件和文件夹的更改,但是有一些文件我们希望Git忽略它。为此,我们可以在系统根目录下创建一个命名为.gitignore的文件。打开编辑器,创建新文件并写入以下内容:

  1. myvenv
    .idea/
    *.pyc
    __pycache__
    staticfiles
    local_settings.py
    db.sqlite3
    migrations
    whoosh_index/

最后保存我们的更改。转到你的控制台并运行这些命令:

  1. 1
    2
  1. $ git add --all .
    $ git commit -m "My simple blog first commit"

推送到Github上

登录GitHub.com网站,如果没有就先注册一个。 创建一个新的仓库名字为simpleblog,在下一屏中,你将看到你的仓库克隆 URL。选择“HTTPS”版本,拷贝地址,我们马上要把它粘贴到终端

在控制台输入以下内容(替换为你的github用户名,不包含尖括号):

  1. 1
    2
  1. $ git remote add origin https://github.com/yidao620c/simpleblog.git
    $ git push -u origin master

输入你的Github账号名和密码,然后你会看到成功的消息说明没问题了。

在 PythonAnywhere设置我们的博客

先去网站注册个用户名,免费的用户即可。

在 PythonAnywhere 上拉取我们的代码

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

  1. 1
  1. $ git clone https://github.com/yidao620c/simpleblog.git

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

今后每次需要更新的时候执行

  1. 1
  1. git pull

在 PythonAnywhere 上创建 virtualenv

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

  1. 1
    2
    3
    4
  1. cd simpleblog
    virtualenv --python=python3.4 myvenv
    source myvenv/bin/activate
    pip install django

注意pip安装步骤可能需要几分钟。耐心等待即可!但是如果超过5分钟,就不对劲了,去查下网络原因。

在 PythonAnywhere 上创建数据库

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

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

  1. 1
    2
  1. (mvenv) $ python manage.py migrate
    (mvenv) $ python manage.py createsuperuser

发布博客

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

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

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

设置 virtualenv

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

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

配置 WSGI 文件

Django使用“WSGI 协议”,它是用来服务Python网站的一个标准。PythonAnywhere支持这个标准。PythonAnywhere识别我们Django博客的方式是通过配置WSGI配置文件。

点击 “WSGI configuration file”链接(在”Code”一节,它将被命名为如 /var/www/_pythonanywhere_com_wsgi.py),然后跳转到一个编辑器。

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

  1. 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
  1. import os
    import sys
  2.  
  3. path = '/home/<your-username>/my-first-blog' # use your own username here
    if path not in sys.path:
    sys.path.append(path)
  4.  
  5. os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
  6.  
  7. from django.core.wsgi import get_wsgi_application
    from django.contrib.staticfiles.handlers import StaticFilesHandler
    application = StaticFilesHandler(get_wsgi_application())

注意: 当看到<your-username>时,别忘了替换为你自己的用户名。

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

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

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

调试技巧

如果你在访问你的网站时候看到一个错误,首先要去error log中找一些调试信息。你可以在PythonAnywhere Web选项卡中发现它的链接。 检查那里是否有任何错误信息,底部是最新的信息。常见问题包括:

  • 忘记我们在控制台中的步骤:创建virtualenv,激活它,安装Django,运行collectstatic,迁移数据库。
  • 在Web选项卡中,virtualenv路径设置错误 — 如果真是这样,这通常会是一个红色错误消息。
  • WSGI 文件设置错误 — 你的simpleblog目录地址设置是否正确?
  • 你是否为你的virtualenv选择了同样的Python版本,如同Web应用程序里的那样?两个应该都是3.4。
  • 有一些常见的调试小贴士在debugging tips on the PythonAnywhere里.

你上线了!

你网站的默认页面说“Welcome to Django”,如同你本地计算机上的一样。试着添加/admin/到URL的末尾,然后你会到达管理者的页面。输入用户名和密码登录,然后你会看到服务器上的 add new Posts 。

Django开发博客- 部署的更多相关文章

  1. 纯django开发博客系统

    企业级教程:纯django开发博客系统 1.视频教程 https://www.duanshuilu.com/ 2.教程文档 https://www.duanshuilu.com/ 0.课程简介1.简价 ...

  2. django开发博客(1) 入门

    现在正式开始博客开发 1.安装django1.4 如果你使用的是fedoraDVD版,安装时选择了web开发组建,这一步可以省略,因为它自带django环境 django下载地址 https://ww ...

  3. 使用django开发博客过程记录4——Category分类视图

    在写点击博客的所属分类,显示所有该分类的文章时真是让我想了好一会,为什么呢?因为我使用的是cbv模式开发的而不是简单的视图处理逻辑的,所以,有些操作会被包装好了,你并不知道它的细节,那么我们今天要实现 ...

  4. 使用django开发博客过程记录3——博客侧栏实现

    说起这个侧栏真是苦恼我很长时间,一开始以为和之前的一样传递额外参数就可以了就像下面这样: class IndexView(ListView): template_name = 'apps/index. ...

  5. Django开发博客- 三部曲

    其实在django中实现一个功能只需要三个步骤即可,这里我姑且叫它三部曲. 这三部曲就是: 定义urls映射 定义views 定义templates 什么是URL? URL就算一个WEB地址,你在浏览 ...

  6. Django开发博客 入门篇

    Django是神马? Django是一个开源免费的Web框架,使用Python编写.能够让你快速写出一个Web应用, 因为它包含了绝大部分的组件,比如认证,表单,ORM,Session,安全,文件上传 ...

  7. Django开发博客(七)——markdown优化

    背景 上一次把markdown集成之后.发现还是有非常多问题. 这次须要做一些优化. 1.markdown与普通文本的差别显示. 2.添加点击量的统计 3.加入名片卡的滑动 版本号相关 操作系统:Ma ...

  8. 使用django开发博客过程记录5——日期归档和视图重写

    针对每条博客的观看次数我么是使用django的Mixin实现的: def get(self, request, *args, **kwargs): last_visit = request.sessi ...

  9. 使用django开发博客过程记录2——博客首页及博客详情的实现

    1.什么是CBV(Class-based views) 2.博客首页及博客详情实现 1.什么是CBV 什么是CBV?说白了就是以前是视图为处理请求返回响应的函数,有了cbv之后我们就可以用类处理请求和 ...

随机推荐

  1. AutoLayout +Masonary

    1, Masonry介绍与使用实践(快速上手Autolayout) http://adad184.com/2014/09/28/use-masonry-to-quick-solve-autolayou ...

  2. SqlSever基础 datediff 计算人的生日是不准确的,示例

    镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...

  3. .NetDOM操作--un

    DOM操作操作相关元素:里:children(),find("选择器")外:parent(),parents("选择器")下:next(),nextAll(选择 ...

  4. GMT时间转换

    /// <summary> /// GMT时间转成本地时间 /// </summary> /// <param name="gmt">字符串形式 ...

  5. BZOJ 3241: [Noi2013]书法家

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3241 题意: 思路:把每个字母分成三部分,两个字母之间还有空的列,所以我一共设了11个状态 ...

  6. “System.Data.OracleClient.OracleConnection”已过时

    处理办法: 在oracle 安装目录下 找到 Oracle.DataAccess.dll添加引用,然后 using Oracle.DataAccess.Client;其他的都不用动,即可.连接字符串中 ...

  7. git学习笔记03-本地git常用操作及原理-文件增删改

    1.查看git状态 git status  这个可以告诉我们对git做了哪些操,比如增删改 2.既然我们修改了东西,有的时候想看看修改了什么,毕竟我们的记忆力并不如电脑 git diff 文件名 (默 ...

  8. LINQ之路 3:C# 3.0的语言功能(下)

    在LINQ介绍一篇中,我们已经看到了隐式类型变量var,扩展方法(Extension method)和Lambda表达式的身影.没错,他们正是LINQ技术的基石,是他们让LINQ的实现成为可能,并且简 ...

  9. More Effective C++ (1)

    简单分析总结了more effective c++ 的前十个条款: 剩下的条款to be continue~ 1.仔细区分指针和引用引用必须不能指向空,指针可以指向空,指针初始化是记得赋空值,重载某些 ...

  10. C语言单链表实现19个功能完全详解

    谢谢Lee.Kevin分享了这篇文章 最近在复习数据结构,想把数据结构里面涉及的都自己实现一下,完全是用C语言实现的. 自己编写的不是很好,大家可以参考,有错误希望帮忙指正,现在正处于编写阶段,一共将 ...