flask-mobility documentation · flask-mobility documentation, release dev • summary •...

27
Flask-Mobility Documentation Release dev Rehan Dalal December 22, 2015

Upload: others

Post on 26-May-2020

77 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Flask-Mobility Documentation · Flask-Mobility Documentation, Release dev • Summary • Documentation • Install • Test • Configuration • Changes to the request Object •

Flask-Mobility DocumentationRelease dev

Rehan Dalal

December 22, 2015

Page 2: Flask-Mobility Documentation · Flask-Mobility Documentation, Release dev • Summary • Documentation • Install • Test • Configuration • Changes to the request Object •
Page 3: Flask-Mobility Documentation · Flask-Mobility Documentation, Release dev • Summary • Documentation • Install • Test • Configuration • Changes to the request Object •

Contents

1 Summary 3

2 Documentation 5

3 Install 7

4 Test 9

5 Configuration 11

6 Changes to the request Object 13

7 How is the value of request.MOBILE determined? 15

8 Decorators 178.1 mobile_template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178.2 mobilized . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

9 Example 19

10 What’s new in Flask-Mobility 2110.1 Version 0.1: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2110.2 Version 0.1.1: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

11 Contributors 23

i

Page 4: Flask-Mobility Documentation · Flask-Mobility Documentation, Release dev • Summary • Documentation • Install • Test • Configuration • Changes to the request Object •

ii

Page 5: Flask-Mobility Documentation · Flask-Mobility Documentation, Release dev • Summary • Documentation • Install • Test • Configuration • Changes to the request Object •

Flask-Mobility Documentation, Release dev

• Summary• Documentation• Install• Test• Configuration• Changes to the request Object• How is the value of request.MOBILE determined?• Decorators

– mobile_template– mobilized

• Example• What’s new in Flask-Mobility

– Version 0.1:– Version 0.1.1:

• Contributors

Contents 1

Page 6: Flask-Mobility Documentation · Flask-Mobility Documentation, Release dev • Summary • Documentation • Install • Test • Configuration • Changes to the request Object •

Flask-Mobility Documentation, Release dev

2 Contents

Page 7: Flask-Mobility Documentation · Flask-Mobility Documentation, Release dev • Summary • Documentation • Install • Test • Configuration • Changes to the request Object •

CHAPTER 1

Summary

A Flask extension to simplify building mobile-friendly sites.

This extension detects whether a mobile site is requested and it modifies the request object accordingly.

Decorators are provided to make mobilizing views easier.

3

Page 8: Flask-Mobility Documentation · Flask-Mobility Documentation, Release dev • Summary • Documentation • Install • Test • Configuration • Changes to the request Object •

Flask-Mobility Documentation, Release dev

4 Chapter 1. Summary

Page 9: Flask-Mobility Documentation · Flask-Mobility Documentation, Release dev • Summary • Documentation • Install • Test • Configuration • Changes to the request Object •

CHAPTER 2

Documentation

Documentation is at http://flask-mobility.readthedocs.org/en/latest/.

5

Page 10: Flask-Mobility Documentation · Flask-Mobility Documentation, Release dev • Summary • Documentation • Install • Test • Configuration • Changes to the request Object •

Flask-Mobility Documentation, Release dev

6 Chapter 2. Documentation

Page 11: Flask-Mobility Documentation · Flask-Mobility Documentation, Release dev • Summary • Documentation • Install • Test • Configuration • Changes to the request Object •

CHAPTER 3

Install

To install:

$ pip install Flask-Mobility

You can also install the development version https://github.com/rehandalal/flask-mobility/tarball/master#egg=Flask-Mobility-dev:

$ pip install Flask-Mobility==dev

or:

$ git clone git://github.com/rehandalal/flask-mobility.git$ mkvirtualenv flaskmobility$ python setup.py develop$ pip install -r requirements.txt

7

Page 12: Flask-Mobility Documentation · Flask-Mobility Documentation, Release dev • Summary • Documentation • Install • Test • Configuration • Changes to the request Object •

Flask-Mobility Documentation, Release dev

8 Chapter 3. Install

Page 13: Flask-Mobility Documentation · Flask-Mobility Documentation, Release dev • Summary • Documentation • Install • Test • Configuration • Changes to the request Object •

CHAPTER 4

Test

To run tests from a tarball or git clone:

$ python setup.py test

9

Page 14: Flask-Mobility Documentation · Flask-Mobility Documentation, Release dev • Summary • Documentation • Install • Test • Configuration • Changes to the request Object •

Flask-Mobility Documentation, Release dev

10 Chapter 4. Test

Page 15: Flask-Mobility Documentation · Flask-Mobility Documentation, Release dev • Summary • Documentation • Install • Test • Configuration • Changes to the request Object •

CHAPTER 5

Configuration

There are two settings that you can change in the config for your application:

MOBILE_USER_AGENTS A regex for detecting mobile user agents.

Defaults to: ’android|fennec|iemobile|iphone|opera (?:mini|mobi)’

MOBILE_COOKIE The name of the cookie to set if the user prefers the mobile site.

Defaults to: ’mobile’

11

Page 16: Flask-Mobility Documentation · Flask-Mobility Documentation, Release dev • Summary • Documentation • Install • Test • Configuration • Changes to the request Object •

Flask-Mobility Documentation, Release dev

12 Chapter 5. Configuration

Page 17: Flask-Mobility Documentation · Flask-Mobility Documentation, Release dev • Summary • Documentation • Install • Test • Configuration • Changes to the request Object •

CHAPTER 6

Changes to the request Object

If the current request is for the mobile site, request.MOBILE = True. At all other times request.MOBILE= False.

13

Page 18: Flask-Mobility Documentation · Flask-Mobility Documentation, Release dev • Summary • Documentation • Install • Test • Configuration • Changes to the request Object •

Flask-Mobility Documentation, Release dev

14 Chapter 6. Changes to the request Object

Page 19: Flask-Mobility Documentation · Flask-Mobility Documentation, Release dev • Summary • Documentation • Install • Test • Configuration • Changes to the request Object •

CHAPTER 7

How is the value of request.MOBILE determined?

request.MOBILE will be set to True if one of the following cases are satisfied:

1. The user agent string in the request headers matches MOBILE_USER_AGENTS and the MOBILE_COOKIE isnot set to off.

2. MOBILE_COOKIE is set to on

15

Page 20: Flask-Mobility Documentation · Flask-Mobility Documentation, Release dev • Summary • Documentation • Install • Test • Configuration • Changes to the request Object •

Flask-Mobility Documentation, Release dev

16 Chapter 7. How is the value of request.MOBILE determined?

Page 21: Flask-Mobility Documentation · Flask-Mobility Documentation, Release dev • Summary • Documentation • Install • Test • Configuration • Changes to the request Object •

CHAPTER 8

Decorators

8.1 mobile_template

This decorator is used to pass an alternate template name to a view function for mobile requests:

from flask.ext.mobility.decorators import mobile_template

@mobile_template('dir/{mobile/}template.html')def view(template):

...

This will pass through ’dir/mobile/template.html’ as template where request.MOBILE is set toTrue. When request.MOBILE is False it will pass through ’dir/template.html’ as template.

8.2 mobilized

This decorator is used to specify an alternate mobilized view function for a view:

from flask.ext.mobility.decorators import mobilized

def view():...

@mobilized(view)def view():

...

In the example above the first view function is used for the normal site and the second function is used to show themobile site.

17

Page 22: Flask-Mobility Documentation · Flask-Mobility Documentation, Release dev • Summary • Documentation • Install • Test • Configuration • Changes to the request Object •

Flask-Mobility Documentation, Release dev

18 Chapter 8. Decorators

Page 23: Flask-Mobility Documentation · Flask-Mobility Documentation, Release dev • Summary • Documentation • Install • Test • Configuration • Changes to the request Object •

CHAPTER 9

Example

example.py

1 #!/usr/bin/env python2 from flask import Flask, render_template3 from flask.ext.mobility import Mobility4 from flask.ext.mobility.decorators import mobile_template5

6

7 app = Flask(__name__)8 Mobility(app)9

10 @app.route('/')11 @mobile_template('{mobile/}index.html')12 def index(template):13 return render_template(template)14

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

templates/base.html

1 <!doctype html>2 <html>3 <head>4 <title>Flask-Mobility example</title>5 </head>6 <body>7 {% block content %}8 {% endblock %}9 </body>

10 </html>

templates/index.html

1 {% extends 'base.html' %}2

3 {% block content %}4 <p>Template: <strong>index.html</strong></p>5 <p>6 request.MOBILE:7 <strong>{% if request.MOBILE %}True{% else %}False{% endif %}</strong>8 </p>9 {% endblock %}

19

Page 24: Flask-Mobility Documentation · Flask-Mobility Documentation, Release dev • Summary • Documentation • Install • Test • Configuration • Changes to the request Object •

Flask-Mobility Documentation, Release dev

templates/mobile/index.html

1 {% extends 'base.html' %}2

3 {% block content %}4 <p>Template: <strong>mobile/index.html</strong></p>5 <p>6 request.MOBILE:7 <strong>{% if request.MOBILE %}True{% else %}False{% endif %}</strong>8 </p>9 {% endblock %}

20 Chapter 9. Example

Page 25: Flask-Mobility Documentation · Flask-Mobility Documentation, Release dev • Summary • Documentation • Install • Test • Configuration • Changes to the request Object •

CHAPTER 10

What’s new in Flask-Mobility

10.1 Version 0.1:

• first release

10.2 Version 0.1.1:

• Minor fixes

• Add Firefox OS detection

21

Page 26: Flask-Mobility Documentation · Flask-Mobility Documentation, Release dev • Summary • Documentation • Install • Test • Configuration • Changes to the request Object •

Flask-Mobility Documentation, Release dev

22 Chapter 10. What’s new in Flask-Mobility

Page 27: Flask-Mobility Documentation · Flask-Mobility Documentation, Release dev • Summary • Documentation • Install • Test • Configuration • Changes to the request Object •

CHAPTER 11

Contributors

• Rehan Dalal (rdalal/rehandalal)

• Will Kahn-Greene (willkg)

• Mike Cooper (mythmon)

• Carlos Eduardo Strand Leal (carlosstrand)

• Tobias Bieniek (Turbo87)

• Joe Cabrera (greedo)

23