Dies ist eine Fortsetzung
[Python + Heroku] Vom Zustand ohne Python zur Anzeige von etwas mit Heroku (Teil 1) http://qiita.com/it_ks/items/afd1bdb792d41d0e1145
Bisher Ich habe es auf Heroku bereitgestellt und als Beispiel <Imakoko ausgeführt
heroku update
Ich habe vergessen. Es ist ein Klassiker, nicht wahr?
heroku update
>heroku update
Updating plugins... done. Updated 1 package.
heroku-cli: Updating... done.
Zu diesem Zeitpunkt scheint Heroku-Cli aktualisiert worden zu sein, und es wurde aktualisiert.
virtualenv
virtualenv venv-name
Es werden die unmittelbaren Umgebungseinstellungen zum Wechseln und Verwenden erstellt.
Venv-name
ist der Umgebungsname. Geben Sie ihm einen Namen Ihrer Wahl und führen Sie ihn aus.
Hier werden wir es orthodox mit dem Namen "venv" erstellen.
>virtualenv venv
New python executable in venv\Scripts\python.exe
Installing setuptools, pip, wheel...done.
Dann jetzt
C: \ Users \ (Ausgelassen) \ Python-Getting-Start
Sie befinden sich in, aber ein Ordner namens venv wird direkt darunter erstellt.
Es gibt verschiedene Pythons (ca. 40 MB),
Dies ist eine Reihe von Umgebungen, die verschmutzt werden können.
Es gibt eine enable.bat, also benutze sie. Anschließend wird der Umgebungsname zur Eingabeaufforderung hinzugefügt (zu Beginn des Wartens auf die Befehlszeileneingabe).
python
>venv\Scripts\activate.bat
(venv) C:\Users\(Weggelassen)\python-getting-started>
Im Folgenden wird es als "(venv)>" abgekürzt
Push local changes Imakoko
https://devcenter.heroku.com/articles/getting-started-with-python#push-local-changes
python
(venv) >pip install -r requirements.txt
Collecting dj-database-url==0.3.0 (from -r requirements.txt (line 1))
Downloading dj_database_url-0.3.0-py2.py3-none-any.whl
Collecting Django==1.9.1 (from -r requirements.txt (line 2))
Downloading Django-1.9.1-py2.py3-none-any.whl (6.6MB)
100% |################################| 6.6MB 75kB/s
Collecting gunicorn==19.4.5 (from -r requirements.txt (line 3))
Downloading gunicorn-19.4.5-py2.py3-none-any.whl (112kB)
100% |################################| 114kB 1.7MB/s
Collecting psycopg2==2.6.1 (from -r requirements.txt (line 4))
Downloading psycopg2-2.6.1-cp27-none-win32.whl (814kB)
100% |################################| 815kB 487kB/s
Collecting whitenoise==2.0.6 (from -r requirements.txt (line 5))
Downloading whitenoise-2.0.6-py2.py3-none-any.whl
Installing collected packages: dj-database-url, Django, gunicorn, psycopg2, whitenoise
Successfully installed Django-1.9.1 dj-database-url-0.3.0 gunicorn-19.4.5 psycopg2-2.6.1 whitenoise-2.0.6
(venv) >
requests==2.9.1
Bitte fügen Sie zur Datei "resources.txt" hinzu, also fügen Sie sie hinzu
Danach pip install -r require.txt
python
(venv) >pip install -r requirements.txt
Requirement already satisfied (use --upgrade to upgrade): dj-database-url==0.3.0 in c:\users\cat_high\documents\guncys\herokustudy\proj\testapp\python-getting-started\sgenv\lib\site-packages (from -r requirements.txt (line 1))
Requirement already satisfied (use --upgrade to upgrade): Django==1.9.1 in c:\users\cat_high\documents\guncys\herokustudy\proj\testapp\python-getting-started\sgenv\lib\site-packages (from -r requirements.txt (line 2))
Requirement already satisfied (use --upgrade to upgrade): gunicorn==19.4.5 in c:\users\cat_high\documents\guncys\herokustudy\proj\testapp\python-getting-started\sgenv\lib\site-packages (from -r requirements.txt (line 3))
Requirement already satisfied (use --upgrade to upgrade): psycopg2==2.6.1 in c:\users\cat_high\documents\guncys\herokustudy\proj\testapp\python-getting-started\sgenv\lib\site-packages (from -r requirements.txt (line 4))
Requirement already satisfied (use --upgrade to upgrade): whitenoise==2.0.6 in c:\users\cat_high\documents\guncys\herokustudy\proj\testapp\python-getting-started\sgenv\lib\site-packages (from -r requirements.txt (line 5))
Collecting requests==2.9.1 (from -r requirements.txt (line 6))
Downloading requests-2.9.1-py2.py3-none-any.whl (501kB)
100% |################################| 503kB 518kB/s
Installing collected packages: requests
Successfully installed requests-2.9.1
(venv) >
Befolgen Sie die Anweisungen und fügen Sie am Anfang von views.py Folgendes hinzu
import requests
Ändern Sie außerdem die Indexfunktion
python
# Create your views here.
def index(request):
# return HttpResponse('Hello from Python!')
return render(request, 'index.html')
↓
python
def index(request):
r = requests.get('http://httpbin.org/status/418')
print r.text
return HttpResponse('<pre>' + r.text + '</pre>')
Testen Sie nach dem Umschreiben der Indexfunktion
(venv) >pip install -r requirements.txt
(venv) >heroku local
forego | starting web.1 on port 5000
web.1 | Traceback (most recent call last):
(venv) >
Sie können die lokale Umgebung überprüfen, indem Sie auf "http: // localhost: 5000" zugreifen.
Ich habe es danach bemerkt, aber vielleicht ist dies in der Windows-Umgebung der Fall.
heroku local web -f Procfile.windows
Der unten geschriebene ist ↓
https://devcenter.heroku.com/articles/getting-started-with-python#declare-app-dependencies
Immer noch hier
https://devcenter.heroku.com/articles/getting-started-with-python#push-local-changes
git add
git add .
(Dann
warning: LF will be replaced by CRLF in〜〜
The file will have its original line endings in your working directory.
Ich habe viele Protokolle über den Zeilenvorschubcode erhalten. Kürzung)
git commit
(venv) >git commit -m "Demo"
*** Please tell me who you are.
Run
git config --global user.email "[email protected]"
git config --global user.name "Your Name"
to set your account's default identity.
Omit --global to set the identity only in this repository.
fatal: unable to auto-detect email address (got '{user}@{machine}.(none)')
(venv) >
Hmm Entschuldigung.
(venv) >git config --global user.email "[email protected]"
(venv) >git config --global user.name "heroku user name"
Und wieder verpflichten.
Es heißt "git push heroku master", also folge ihm leise
Das Hochladen dauert einige Zeit. Über 2 Minuten?
python
(venv) >git push heroku master
Counting objects: 5952, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (4984/4984), done.
Writing objects: 100% (5952/5952), 7.32 MiB | 87.00 KiB/s, done.
Total 5952 (delta 1807), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Using set buildpack heroku/python
remote: -----> Python app detected
remote: -----> Installing dependencies with pip
remote: Collecting requests==2.9.1 (from -r requirements.txt (line 6))
remote: Downloading requests-2.9.1-py2.py3-none-any.whl (501kB)
remote: Installing collected packages: requests
remote: Successfully installed requests-2.9.1
remote:
remote: -----> Preparing static assets
remote: Running collectstatic...
remote: Post-processed 'admin/js/vendor/xregexp/LICENSE-XREGEXP.txt' as 'admin/js/vendor/xregexp/LICENSE-XREGEXP.d64cecf4f157.txt'
(Weggelassen)
remote: Post-processed 'humans.txt' as 'humans.d41d8cd98f00.txt'
remote: Post-processed 'lang-logo.png' as 'lang-logo.019c8743b7cf.png'
remote: 58 static files copied to '/app/staticfiles', 58 post-processed.
remote:
remote:
remote: -----> Discovering process types
remote: Procfile declares types -> web
remote:
remote: -----> Compressing... done, 50.3MB
remote: -----> Launching...
remote: Released v6
remote: https://ancient-taiga-0000.herokuapp.com/ deployed to Heroku
remote:
remote: Verifying deploy.... done.
To https://git.heroku.com/ancient-taiga-0000.git
fe7f948..8bba81f master -> master
(venv) >
Überprüfen Sie (das nicht-lokale Heroku) mit "(venv)> Heroku offen".
Imakoko
https://devcenter.heroku.com/articles/getting-started-with-python#start-a-console
Python Versuchen Sie "Heroku Run Python Manage.py Shell"
python
(venv) >heroku run python manage.py shell
Running python manage.py shell on ancient-taiga-0000... up, run.8091
Python 2.7.11 (default, Dec 7 2015, 21:16:24)
[GCC 4.8.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>>
>>> dir()
['__builtins__']
Du kannst reden. Die Reaktion beim Tippen ist langsam, wahrscheinlich aufgrund der Kommunikation.
Beim Schließen
>>> exit()
bash
heroku run bash
python
(venv) >heroku run bash
Running bash on ancient-taiga-0000... up, run.5888
~ $ ls
app.json hello Procfile README.md runtime.txt
gettingstarted manage.py Procfile.windows requirements.txt staticfiles
~ $ exit
exit
(venv) >
Dies ist die Produktion. Die Indexfunktion, die ich zuvor geändert habe,
python
return HttpResponse('<pre>' + r.text + '</pre>')
Dieser Teil ist der Inhalt, der angezeigt wird, wenn Sie auf den Index zugreifen.
Sie müssen nur HttpResponse ()
** einen ** String geben.
Zum Beispiel
python
def index(request):
return HttpResponse( str(dir()) )
Mögen.
add、commit、push Fügen Sie nach dem Bearbeiten von .py → Festschreiben → Drücken hinzu
(venv) >git add .
(venv) >git commit -m "DemoDemo"
[master 986e6d1] DemoDemo
1 file changed, 4 insertions(+)
(venv) >git push heroku master
Counting objects: 4, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 365 bytes | 0 bytes/s, done.
Total 4 (delta 3), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Using set buildpack heroku/python
remote: -----> Python app detected
remote: -----> Installing dependencies with pip
remote:
remote: -----> Preparing static assets
remote: Running collectstatic...
remote: Post-processed 'admin/js/vendor/jquery/jquery.js' as 'admin/js/vendor/jquery/jquery.107fbe9555bf.js'
(Weggelassen)
remote: Post-processed 'humans.txt' as 'humans.d41d8cd98f00.txt'
remote: Post-processed 'lang-logo.png' as 'lang-logo.019c8743b7cf.png'
remote: 58 static files copied to '/app/staticfiles', 58 post-processed.
remote:
remote:
remote: -----> Discovering process types
remote: Procfile declares types -> web
remote:
remote: -----> Compressing... done, 50.3MB
remote: -----> Launching...
remote: Released v8
remote: https://ancient-taiga-0000.herokuapp.com/ deployed to Heroku
remote:
remote: Verifying deploy... done.
To https://git.heroku.com/ancient-taiga-0000.git
8bba81f..986e6d1 master -> master
(venv) >
(Oh, der Commit-Kommentar sieht aus wie ein Mist, aber natürlich solltest du ein besseres Gedicht hinzufügen)
Ergebnis:
Die Funktion ** index ** wird aufgerufen, wenn Sie auf https: //cient-taiga-0000.herokuapp.com /
zugreifen.
Dann zum Beispiel, um es zugänglich zu machen wie "https: // abbreviation / test".
Fügen Sie eine dem Index ähnliche Funktion "return HttpResponse ()" hinzu. Hier haben wir eine "Test" -Funktion vorbereitet.
python
def test(request):
return HttpResponse( '<strong>test view !!</strong>' )
Es scheint, dass Sie ** urls.py ** direkt unter dem Ordner "Erste Schritte" zusammen mit "view.py" bearbeiten sollten. Dies auf Github,
https://github.com/heroku/python-getting-started/blob/master/gettingstarted/urls.py
python
urlpatterns = patterns('',
# Examples:
# url(r'^$', 'gettingstarted.views.home', name='home'),
# url(r'^blog/', include('blog.urls')),
url(r'^$', hello.views.index, name='index'),
url(r'^db', hello.views.db, name='db'),
url(r'^admin/', include(admin.site.urls)),
)
(▲) Weil es so einen Teil gibt
python
url(r'^test', hello.views.test, name='test'),
Ich habe es so hinzugefügt.
mit diesem
Sie haben das Ziel erreicht, etwas anzuzeigen, danke.
»Es war lange auf und ab, aber ich habe nicht viel getan. Die zweite Hälfte ist hauptsächlich unten
Da in der letzten Testansicht das starke Tag verwendet wird, sollten Sie eine HTML-Zeichenfolge vorbereiten und erhöhen. Schreiben Sie vorher den Prozess der Kommunikation mit externen Diensten auf. Es scheint, dass Sie es formatieren und an die HttpResponse-Funktion übergeben können.
Also möchte ich mit ** externen APIs ** herumspielen.
Vorbereiten und Bereitstellen von Heroku innerhalb der kostenlosen Stufe (Mac 10 + Rails 4.2 + MySQL 5.6) http://ruby-rails.hatenadiary.com/entry/20150314/1426332751
Recommended Posts