Pythoni näidisrakendus (Flask)

Virtualenv on tööriist, mille abil saab luua isoleeritud pythoni keskkondi. Virtualenv loob kataloogi, milles hakatakse hoidma pythoni projekti jaoks vajalike paigaldatud moodulite koodi. See võimaldab kliendil serverisse paigaldada selliseid mooduleid, mida serverisse eelinstalleeritud pole või paigaldada nendest erinevaid versioone.

Virtualenvi tuleb kasutada SSH keskkonnas käsurealt. SSH ligipääsu saab lisada iseteenindusest.

Loome kõikide virtualenvide jaoks kataloogi:

mkdir ~/.virtualenvs

 

Loome konkreetse projekti virtualenvi python 3.9-ga, nimetame selle "flask-website":

python3.9 -m venv ~/.virtualenvs/flask-website

 

Aktiveerime projekti virtualenvi:

source ~/.virtualenvs/flask-website/bin/activate

 

Nüüd on võimalik paigaldada vajalikke mooduleid, kasutades selleks tööriista pip. Piagaldame Flaski (Flask on pisike pythoni koodiraamistik):

pip install Flask

 

Paigaldame pythoni FastCGI kaudu jooksutamiseks vajaliku flup mooduli:

pip install flup6

 

Veebiserverites on pythonis kirjutatud koodi jooksutamine vaikimisi lubatud. Seda tuleb teha läbi FastCGI, mille rakendamise saab seadistada .htaccess faili kaudu.

Vaikimisi on FastCGI kasutamine seadistatud veebilehe ~/htdocs/cgi-bin kataloogi sees (loo see ise, kui seda pole). Selleks, et pythoni Flaski rakendus FastCGI kaudu tööle hakkaks, tuleb luua ~/htdocs/cgi-bin kataloogi fail dispatch.fcgi:

#!/usr/bin/env python3.9
import os, sys
DOMAIN = "domeen.ee" # Sinu domeeni nimi (ilma www-ta)
PREFIX = "/www/apache/domains/www.%s" % (DOMAIN,)
# Add a custom Python path.
sys.path.insert(0, os.path.join(PREFIX, ".virtualenvs/flask-website/lib/python3.9/site-packages/"))
from flup.server.fcgi import WSGIServer
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
    return "Hello World! <a href=\"test/\">to test</a>"
@app.route("/test/")
def test():
    return "Test!"
class ScriptNameStripper(object):
   def __init__(self, app):
       self.app = app
   def __call__(self, environ, start_response):
       environ['SCRIPT_NAME'] = ''
       return self.app(environ, start_response)
app = ScriptNameStripper(app)
if __name__ == '__main__':
    WSGIServer(app).run()

Failile tuleb anda käivitamise õigus:

chmod +x ~/htdocs/cgi-bin/dispatch.fcgi

 

Seejärel tuleb ~/htdocs/.htaccess faili lisada reeglid, mis lubavad .fcgi failide tuvastamise FastCGI skriptina ja suunavad veebipäringud dispatch.fcgi faili.

AddHandler fcgid-script .fcgi
Options +ExecCGI
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ cgi-bin/dispatch.fcgi/$1 [QSA,L]

Abistavad tähelepanekud

Koodimuudatuste rakendumine

Kui veebilehte on juba avatud, siis võib django protsess jooksmas olla ja koodi muutmise järel ei kajastu muudatused uuel lehe laadimisel koheselt. Seetõttu tuleks pärast koodimuudatusi jooksev pythoni protsess peatada, et see saaks lehe värskendamisel värske koodiga tööle hakata.

pkill -f dispatch.fcgi

 

Pythoni veateadete logi

Veebiserveri pealogile pole kahjuks klientidele võimalik ligipääsu tekitada. Seetõttu pythoni koodi veateateid vaadata ei saa, kuid abiks võib olla koodi käsitsi käivitamine käsurealt:

python3.9 ~/htdocs/cgi-bin/dispatch.fcgi

Seotud juhendid

Sinu tagasiside on oluline

Enim esitatud küsimused

Enim loetud juhendid

Juhendid alustajale

Klienditeenindus
Lisasime diili sinu ostukorvi, said ikka mega hea diili!

Vali paketi periood

1 kuu põhine arveldus

Kuus 12.08

Kokku 12.08

3 kuu põhine arveldus

Kuus 12.08

Kokku 36.24

6 kuu põhine arveldus

Kuus 12.08

Kokku 72.48

1 aasta põhine arveldus

Säästad 20% ehk -24.16

Kuus 10.07

Kokku 120.80

1 aasta
0.00
2 aastat
0.00
3 aastat
0.00
4 aastat
0.00
5 aastat
0.00
6 aastat
0.00
7 aastat
0.00
8 aastat
0.00
9 aastat
0.00
10 aastat
0.00