• ALL
  • LEETCODE
  • BEAR
  • RSS
  • Flask Day 1

    2016年2月15日

    “Hello World” in Flask

    Create a folder named microblog (or whatever you want). Then cd into that folder and run following prompt in terminal:

    1
    $ python3 -m venv flask

    Now you’ll have a folder named flask inside microblog, containing a private version of Python interpreter.

    And you should install flask and extensions by the commands below:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $ flask/bin/pip install flask
    $ flask/bin/pip install flask-login
    $ flask/bin/pip install flask-openid
    $ flask/bin/pip install flask-mail
    $ flask/bin/pip install flask-sqlalchemy
    $ flask/bin/pip install sqlalchemy-migrate
    $ flask/bin/pip install flask-whooshalchemy
    $ flask/bin/pip install flask-wtf
    $ flask/bin/pip install flask-babel
    $ flask/bin/pip install guess_language
    $ flask/bin/pip install flipflop
    $ flask/bin/pip install coverage

    After that, let’s create the basic structure for our application: app app/static app/templates tmp.

    1. app — where the application package is
    2. static — stores static files like images, javascripts, and css.
    3. templates — where templates will go.

    Then you can start with __init__.py which should put into app folder (file app/__init__.py):

    1
    2
    3
    4
    from flask import Flask

    app = Flask(__name__)
    from app import views

    The views are the handlers that response to requests from web browsers or other clients. Each view function is mapped to one or more request URLs.

    Let’s see what a views function looks like (file app/views.py):

    1
    2
    3
    4
    from flask import Flask

    app = Flask(__name__)
    from app import views

    Finally we should create a script to starts up the web server with our application(file run.py):

    1
    2
    3
    #!flask/bin/python
    from app import app
    app.run(debug=True)

    To indicating that is an executable file you need to run this in terminal:

    1
    $ chmod a+x run.py

    Now the file structure should look like:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    microblog\
    flask\
    <virtual environment files>
    app\
    static\
    templates\
    __init__.py
    views.py
    tmp\
    run.py

    Then start to write the template (file app/templates/index.html):

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <html>

    <head>
    <title>{{ title }} - microblog</title>
    </head>

    <body>
    <h1>Hello, {{ user.nickname }}!</h1>
    </body>

    </html>

    Now let’s write the view function that uses this template (file app/views.py):

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    from flask import render_template
    from app import app

    @app.route('/')
    @app.route('/index')
    def index():
    user = {'nickname': 'ching'} # fake user
    return render_template('index.html',
    title='Home',
    user=user)

    render_template function is what we import from Flask framework to render the template. It uses Jinja2 templating engine.

  • First Post

    2016年2月12日

    This is the very first post I wrote,

    with Typora & Hexo.

PRVE