2015-07-06 3 views
-2

Я только начал изучать создание веб-сайтов с использованием инфраструктуры Python и Flask.Что происходит в фоновом режиме на веб-сервере?

Мое первое приложение является самым простым и оно возвращает «Hello World!», когда пользователь отправляет запрос на домашнюю страницу веб-сайта.

Ниже вы можете увидеть структуру моего приложения:

myWebsiteDirectory/ 
    app/ 
     __init__.py 
    setup.py 
    wsgi.py 

А ниже вы видите содержание питона файлов:

setup.py

from setuptools import setup 

setup(name='YourAppName', 
     version='1.0', 
     description='OpenShift App', 
     author='Your Name', 
     author_email='[email protected]', 
     url='http://www.python.org/sigs/distutils-sig/', 
     install_requires=['Flask>=0.10.1'], 
    ) 

wsgi.py

#!/usr/bin/python 
import os 

#virtenv = os.environ['OPENSHIFT_PYTHON_DIR'] + '/virtenv/' 
virtenv = os.path.join(os.environ.get('OPENSHIFT_PYTHON_DIR','.'), 'virtenv') 
virtualenv = os.path.join(virtenv, 'bin/activate_this.py') 
try: 
    execfile(virtualenv, dict(__file__=virtualenv)) 
except IOError: 
    pass 
# 
# IMPORTANT: Put any additional includes below this line. If placed above this 
# line, it's possible required libraries won't be in your searchable path 
# 

from app import app as application 

# 
# Below for testing only 
# 
if __name__ == '__main__': 
    from wsgiref.simple_server import make_server 
    httpd = make_server('localhost', 8051, application) 
    # Wait for a single request, serve it and quit. 
    httpd.serve_forever() 

__init__.py

from flask import Flask 

app = Flask(__name__) 
app.debug = True 

@app.route('/') 
def not_again(): 
    return 'Hello World!' 

if __name__ == '__main__': 
    app.run(host='0.0.0.0', debug=True) 

Что мой вопрос:

Что происходит, когда я загрузить эти файлы на сервере, и что происходит, когда запрос пользователя мой сайт?

В других словах:

  1. Когда Python интерпретировать каждый из указанных файлов на сервере? (И сколько раз каждый файл интерпретирует)?
  2. Что происходит, когда пользователь отправляет запрос? Его/ее запрос делает файл повторно интерпретированным или запрос ссылается на запущенную функцию как аргумент? Если это так, не нужно ли на сервере бесконечный цикл, чтобы поймать запрос? если да, то где этот бесконечный цикл?
  3. Что происходит, когда пользователь отправляет запрос, когда веб-сервер еще не завершил предыдущий запрос? Те аргумент/сценарий ссылаются/интерпретируются снова в отдельной среде для этого нового пользователя или он/она должен ждать, пока сервер завершит отвечать на предыдущий запрос?

И опять же, в других словах:

  • Как запросы пользователя обращаться на веб-сервере?

Хотя выше вопрос основан на Python & Колба фреймворк веб-разработки, но есть общий механизм для всех языков и фреймворков, пожалуйста, дайте мне знать, что общая процедура и не в этот конкретный случай.

ответ

2

Если у вас нет хорошего представления о том, как работает веб-сервер, так как вы заинтересованы в Python, я предлагаю вам иметь Распознать:

Если вы заинтересованы в том, чтобы сделать что-то с веб-картой Python для создания сайта, г чтение:

Это хорошее базовое введение, чтобы заставить людей идти.

Это даст вам основы для работы. Как конкретные серверы WSGI или сервисные провайдеры могут работать немного иначе, но вы сможете лучше понять, работая над этим выше.

 Смежные вопросы

  • Нет связанных вопросов^_^