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

cloud cloud cloud
help
Tähtis küsimus jäi vastuseta? Küsi julgelt otse meie klienditoelt
Me aitame sul kindlasti oma küsimusele see tähtis vastus leida. Ja kui me seda teeme siis võtame kiiresti ühendust!
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