在PythonAnyWhere上部署Django项目

具体的部署过程:

1.创建账户

在PAW(PythonAnyWhere)上创建免费beginner账户,网址为: https://www.pythonanywhere.com/pricing/

2.进入Dashboard

创建账户成功后,登录账户,在页面的右上角点击Dashboard进入类似于控制面板的页面,在这里,你将看到 “Consoles”、“Files”、“Web”、“Schedule”、“Databases”等标签。

3.启动终端,创建虚拟环境

Consoles标签了点击bash,页面会加载一个bash终端,首先创建rango(django app)的虚拟环境

$ mkvirtualenv rango

创建成功后,输入端的前面会多出(rango)标示,如下所示:

(rango) 09:06 ~ $ 

命令deactivate将退出虚拟环境,命令workon rango将再次进入虚拟环境。

4.安装依赖包

利用pip安装在开发中用到的各种python第三方包,这里我使用了如下命令:

(rango) 09:06 ~ $ pip install django
(rango) 09:10 ~ $ pip install django-registration-redux

安装略慢,因为你注册的免费的beginner账户。

5.上传项目代码至服务器

安装成功后,接下来从github克隆你的项目至PAW。但是我之前根本没有把项目放在github上,网上一番查找相关资料后,找到了git相关用法,很简单,只需要以下简单的步骤:

5.1创建本地git仓库

在本地mac上,进入tango_with_django的项目目录(此目录里能找到manage.py),键入:

⇒  git init

这样就在此目录里创建了一个本地repository,前提是你的电脑里已经安装了git

5.2添加文件引用

将此目录的所有文件引用添加到git,命令为:

⇒  git add --all

5.3提交文件引用

将添加的引用提交到本地repository,命令为:

⇒  git commit -m "the first time to add all files"

5.4推送项目至github远程仓库

将本地repository推送到github上面的repository,首先需要登录github的网页,然后新建一个repository,命名为tango_with_django,接着在本地电脑终端键入如下命令:

⇒  git remote add origin https://github.com/sass1s/tango_with_django.git
⇒  git push -u origin master

输入第二条命令的时候,可能要求输入你的github的账户和密码。这样,我就完成了将本地的repository推送到github的repository了。

5.5克隆github仓库至PAW服务器

回到PAW的终端,将github的repository克隆到PAW的服务器里,命令如下:

git clone https://sass1s:<password>@github.com/sass1s/tango_with_django.git

成功后,你将在~目录看到tango_with_django的文件夹。

6.创建数据

创建项目启动前的一些命令,依次键入:

(rango) 09:47 ~/tango_with_django (master)$ python manage.py makemigrations
(rango) 09:47 ~/tango_with_django (master)$ python manage.py migrate
(rango) 09:47 ~/tango_with_django (master)$ python populate_rango.py

7.创建web app

退出PAW的终端,点击Web标签,进入后,点击页面左边的Add a new web app,点击几个next,注意中途需要点击manual configuration,即可成功创建web app。此时,你在浏览器键入http://<username>.pythonanwhere.com后,会看到Hello, World!的页面。

8.配置Virtualenv

创建web app成功后,在Web标签页面会出现你创建的web app相关配置信息,我称之为项目管理页面。在该页面找到Virtualenv,点击Enter a path to a virtualenv, if desired,替换成你自己的virtualenv路径,如:/home/<username>/.virtualenvs/rango。 此处有个坑,若按照tango with django的教程,此处应为:/home/<username>/.virtualenvs/rango/bin/activate_this.py,但这是错误的配置方式,困扰了我好长时间。

9.配置WSGI代码

在项目管理页面找到WSGI configuration file: [/var/www/<username>_pythonanywhere_com_wsgi.py],点击该py文件,只保留以下代码,其余代码删除(或注释掉):

# +++++++++++ DJANGO +++++++++++
# To use your own django app use code like this:
import os
import sys
#
## assuming your django settings file is at '/home/<username>/mysite/mysite/settings.py'
## and your manage.py is is at '/home/<username>/mysite/manage.py'
path = '/home/<username>/tango_with_django'
if path not in sys.path:
sys.path.append(path)
#
os.environ['DJANGO_SETTINGS_MODULE'] = 'tango_with_django_project.settings'
#
## then, for django >=1.5:
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
## or, for older django <=1.4
#import django.core.handlers.wsgi
#application = django.core.handlers.wsgi.WSGIHandler()

此处还有个坑,不要仿照tango with django的教程写入他的代码,因为部分代码过时了。以上代码保存退出后,可以重启(Reload)你的应用,一切顺利的话,你就可以在http://<username>.pythonanywhere.com/看到你的应用的页面了。

10.配置静态文件

在项目管理页面找到Static files,点击Enter URL,输入/static/admin,点击对应的Enter path,输入/home/<username>/.virtualenvs/rango/lib/python2.7/site-packages/django/contrib/admin/static/admin,以上步骤添加了admin相关页面的静态文件;下面添加应用中的静态文件,再次点击Enter URL,输入/static/,点击对应的Enter path,输入/home/<username>/tango_with_django/static/。 此处tango with django的教程还有个坑,它对应的/static/path/home/<username>/tango_with_django/tango_with_django_project/static,路径中多了一个tango_with_django_project,这也困扰了我好一会儿。 以上一切顺利的话,在你的网址http://<username>.pythonanywhere.com/中就能看到诸如图片之类的东东了。

11.导入数据库

(1)导出本地数据库

mysqldump -uroot -p <本地数据库名> > 保存文件名.sql

(2)使用'git'或者在pythonanywhere上数据库文件<保存文件名.sql>。 (3)进入pythonanywhere的mysql console,依次输入

use <username>$<databasename>;

source /home/<username>/<projectname>/<保存文件名.sql>

参考资料:

https://help.pythonanywhere.com/pages/UsingMySQL https://help.pythonanywhere.com/pages/ImportingYourLocalDatabaseToPythonAnywhere

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏散尽浮华

Linux操作系统启动流程梳理

接触linux系统运维已经好几年了,常常被问到linux系统启动流程问题,刚好今天有空来梳理下这个过程: 一般来说,所有的操作系统的启动流程基本就是: ? 总的...

30180
来自专栏iOSDevLog

在Mac OS X上安装Python 3并使用virtualenv和virtualenvwrapper

这篇文章解释了如何在Mac OS X中安装Python 3,包括Mavericks和Yosemite。如果要清理安装Python 2.7,请查看此帖子。你也可以...

30110
来自专栏华章科技

收藏 | Linux常用156个命令汇总!

linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的...

20720
来自专栏数据派THU

收藏 | Linux常用156个命令汇总!

来源:机器学习算法与Python学习 本文为大家带来Linux系统中156个常用的命令。 linux命令是对Linux系统进行管理的命令。对于Linux系统来说...

520120
来自专栏埋名

CentOS7安装维护Gitlab

下面是官网复制过来的官方安装方法,最简单的安装,在我大天朝,只能望天兴叹,你可翻墙安装或者略过这里,看下面的。

66430
来自专栏SpringBoot 核心技术

SpringCloud组件:Eureka服务注册是采用主机名还是IP地址?

我们一直在使用Eureka进行注册服务,然而你有可能很少关心服务在注册到Eureka Server时是采用的主机名的方式?还是IP地址的方式?

28910
来自专栏WindCoder

边学边用Gradle:依赖管理

粗略的讲, 依赖管理由两部分组成:项目的 dependencies(依赖项) 和 publications(发布项)。

20210
来自专栏Java学习123

IBM Websphere Message Broker(MB) 教程系列-(1) 在Fedora

386100
来自专栏黑泽君的专栏

Eclipse各版本代号一览表以及官网上有很多版本的eclipse,下载哪个版本比较合适呢?

Eclipse的设计思想是:一切皆插件。Eclipse核心很小,其它所有功能都以插件的形式附加于Eclipse核心之上。

77010
来自专栏Brian

Install Django Nginx uWSGI

概述 最近项目需要安装和配置多站点环境,所以把多站点开发环境配置和安装记录下来,帮助其他人少走坑。 安装Python 2.7.x 首先安装一些开发环境基本的包和...

40590

扫码关注云+社区

领取腾讯云代金券