Přeskočit na obsah

pythonanywhere/kychot/web

Z Wikiverzity

pythonanywhere/kychot/web

Moje první webová stránka na https://pythonanywhere.com

https://kychot.pythonanywhere.com

Postupuji podle návodu na https://www.pythonanywhere.com/task_helpers/start/3-web_app/ – I want to create a web application

Defaultní webová aplikace – Flask

[editovat]
  • Jdu na svůj Dashboard
  • V pravém sloupci All Web apps kliknu na Open Web tab
  • + Add a new web app
  • Your web app's domain name: Protože mám bezplatný účet, nemám na vybranou a kliknu na [Next]
  • Mám na vybranou několik frameworků:
  • Vyberu Flask
  • Mám na vybranou několik verzí Pythonu: 2.7, 3.4, 3.5, 3.6, 3.7 (všechny jedou defaultně na Flask 1.0.2, ale mám možnost to změnit)
  • Zvolím nejvyšší verzi Python 3.7
  • Ponechám defaultní cestu k Flask project: /home/kychot/mysite/flask_app.py
  • A moje defaultní webová aplikace je na světě:
  • Upozornění: Aplikace běží zdarma, ale je nutno se alespoň jednou za 3 měsíce zalogovat a kliknout na [Run until 3 months from today] – to platí pro neplatící uživatele
  • Je nám nabízeno [Add a new web app], ale po kliknutí jsme upozorněni, že pro další aplikaci už si musíme platit...

Editace

[editovat]

Teď můžeme upravovat kód aplikace:

  • Vidím, že zdrojový kód (Source code) je v adresáři: /home/kychot/mysite
    Kliknu tedy na Go to directory.
  • Vidím, že tu je jen jeden zdrojový soubor aplikace: flask_app.py
  • Mám možnost si ho stáhnout a editovat off-line, anebo kliknout na tužtičku a editovat on-line. Tak třeba:
# První Kychotí aplikace, spuštěná ve Flasku na adrese:
# http://kychot.pythonanywhere.com/

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Kychot sedí na Flasku a zdraví celý svět!'
  • Po uložení (Save anebo Ctrl-S musím kliknout na reload 🗘

Konfigurace

[editovat]
WSGI configuration file: /var/www/kychot_pythonanywhere_com_wsgi.py
# This file contains the WSGI configuration required to serve up your
# web application at http://<your-username>.pythonanywhere.com/
# It works by setting the variable 'application' to a WSGI handler of some
# description.
#
# The below has been auto-generated for your Flask project

import sys

# add your project directory to the sys.path
project_home = u'/home/kychot/mysite'
if project_home not in sys.path:
    sys.path = [project_home] + sys.path

# import flask app but need to call it "application" for WSGI to work
from flask_app import app as application  # noqa

Na tom je nejdůležitější, že v tomto souboru je definována globální proměnná application, kterou lze odkudkoliv importovat.

Flask intro

[editovat]

Úvod do použití Flask na pythonanywhere:

Co je popisováno ze začátku už máme a umíme; první, co nás dále čeká, je systém správy verzí w: Git

  • otevřeme si konsoli
cd ~/mysite
git config --global user.name "Kychot"
git config --global user.email "*****@seznam.cz"
git init
  Initialized empty Git repository in /home/kychot/mysite/.git/

emacs -nw .gitignore

   *.pyc
   __pycache__

git status

On branch master
Initial commit
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        .gitignore
        .gitignore~
        flask_app.py
nothing added to commit but untracked files present (use "git add" to track)

git add .gitignore flask_app.py

git status

On branch master
Initial commit
Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   .gitignore
        new file:   flask_app.py
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        .gitignore~

git commit -m"1.commit prvni aplikace ve Flasku vcetne .gitignore"

[master (root-commit) a2f7e24] 1.commit prvni aplikace ve Flasku vcetne .gitignore
 2 files changed, 12 insertions(+)
 create mode 100644 .gitignore
 create mode 100644 flask_app.py

git status

On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        .gitignore~
nothing added to commit but untracked files present (use "git add" to track)

Tak teď k souboru /home/kychot/mysite/flask_app.py přidáme nějakou blbost, třeba:

@app.route('/blbost')
def blbost():
    return 'To je asi ňáká blbost'

Jo, funguje to:

http://kychot.pythonanywhere.com/blbost

A teď tu blbost zase dáme pryč:

git status

On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)
        modified:   flask_app.py
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        .gitignore~
no changes added to commit (use "git add" and/or "git commit -a")

git checkout -- flask_app.py

git status

On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        .gitignore~
nothing added to commit but untracked files present (use "git add" to track)

Templates

[editovat]

Pokračujeme na https://blog.pythonanywhere.com/121/ sekce A first cut with dummy data

Jdu na https://www.pythonanywhere.com/user/kychot/files/home/kychot/mysite

a dále na https://www.pythonanywhere.com/user/kychot/files/home/kychot/mysite/templates