我想用github帐户同步pythonanywhere项目。 就像我在github上的项目中进行更改一样,它会在pythonanywhere自动更新。 原谅我,我是github的新手。
答案 0 :(得分:3)
您可以考虑:
如果你只想在pythonanywhere上开发,你需要生成一个SSH密钥,并将公共密钥添加到你的GitHub帐户,如" How to get your code in and out of PythonAnywhere"。
答案 1 :(得分:3)
我刚刚为自己的Pythonanywhere项目解决了此问题。我不想打扰SSH密钥,所以我使用了Github Webhooks和在我的pythonanywhere帐户上运行的Python脚本。更新源代码后,Python脚本会监听Github发出的Webhook,并在pythonanywhere上执行脚本以提取新文件。
这是场景:
提示:
git init
,然后输入git remote add origin https://github.com/yourusername/yourreponame.git
git pull origin master
):from flask import Flask, request
import git
app = Flask(__name__)
@app.route('/webhook', methods=['POST'])
def webhook():
if request.method == 'POST':
repo = git.Repo('./myproject')
origin = repo.remotes.origin
repo.create_head('master',
origin.refs.master).set_tracking_branch(origin.refs.master).checkout()
origin.pull()
return '', 200
else:
return '', 400
让我知道是否需要更多信息。
答案 2 :(得分:1)
对于Django:
首先你需要安装gitpython:pip install gitpython
更新views.py
:
from django.http import HttpResponse
from git import Repo #
from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
def webhook(request):
if request.method == 'POST':
repo = Repo('./django-schools')
git = repo.git
git.checkout('master')
git.pull()
return HttpResponse('pulled_success')
return HttpResponse('get_request', status=400)