[Bottle] mobile Endgeräte

Django, Flask, Bottle, WSGI, CGI…
Antworten
lackschuh
User
Beiträge: 281
Registriert: Dienstag 8. Mai 2012, 13:40

Hallo

Ich bin gerade dabei, für meine Internetseite eine Version für Smartphones zu bauen. Anfänglich hatte ich nur ein zweites CSS angelegt mittels Media Queries. Da ich aber nur ein Bruchteil der Informationen auf der "mobilen Version" zur Verfügung stellen will, wurde es mir dann zu blöd, das Haupt-CSS umzuschreiben.

Meine Frage ist nun, ob es irgendwie möglich ist, den Browser bzw User-Agent zu überprüfen und wenn es sich um ein mobiles Gerät handelt, dann wird das "mobile.tpl" angezeigt und wenn nicht, dann "normales.tpl".
Sirius3
User
Beiträge: 17738
Registriert: Sonntag 21. Oktober 2012, 17:20

Hallo lackschuh,

der Trend geht zu reinen CSS-Lösungen mit »responsive Design«. Die Vielzahl an Geräten, verschiedene Auflösungen, usw. macht eine Unterscheidung auf dem Server sehr schwierig.
Zudem ist es moralisch Fraglich mobilen Nutzern Daten vorzuenthalten, die könnten sich gekränkt fühlen.
lackschuh
User
Beiträge: 281
Registriert: Dienstag 8. Mai 2012, 13:40

Hi

Auf einer Seite gebe ich dir ja recht. Das Ding ist halt so, dass ich im Haupt-App die Routs definiert habe :

Code: Alles auswählen

@route('/home', method='GET')
def hello():
    tpl = template('layout.tpl', Titel = db.thome,  Description =db.dhome, menubar = db.menubar,actstate = 'home')
    banner = template('banner_aktuell.tpl', aktuelleProjekte = db.aktuelleProjekte)
    t = Template(tpl)
    return t.substitute(content= banner)

@route('/')
def home():
    #banner()
    redirect("/home")
Das ganze Zeugs wie die jquery slider etc. sind in den entsprechenden Templates eingebunden, welche nicht für mobile Geräte (480px) ausgelegt sind. Um mir eine "Neugestaltung" zu ersparen, dachte ich mir, es gäbe eine nicht allzu aufwändige Möglichkeit - ähnlich wie in php mit get_browser ([ string $user_agent [, bool $return_array = false ]] ) - um je nach Gerät bzw Display auf ein eigens dafür ausgerichtetes Tempalte zu verweisen...

EDIT:
user_agent unter bottle:

Code: Alles auswählen

@route('/user_agent')
def user_agent():
    return request.environ.get('HTTP_USER_AGENT')
Zuletzt geändert von lackschuh am Montag 15. April 2013, 13:38, insgesamt 1-mal geändert.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Den User-Agent kannst du natürlich in Bottle auch auslesen, das Problem ist aber dass es ggf. schwer wird festzustellen ob es ein Mobile-Browser ist oder ein Desktop-Browser. Denn Browser wie Chrome, Firefox und IE gibt es in beiden Varianten.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
BlackJack

Zumal heutzutage selbst auf mobilen Geräten Auflösungen vorhanden sein können, bei denen man problemlos die normale Webseite ausliefern und anzeigen lassen kann. Das am verwendeten Browser fest zu machen ist keine so gute Idee.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Wobei jetzt so ne hohe Auflösung auch nicht unbedingt heißt dass man eine Seite so auf einem 3.8" mit dicken Fingern gut bedienen kann. Andererseis gibts Tablets. Die haben AFAK die gleichen User-Agents und vertragen Desktop-Webseiten eher.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
lunar

@BlackJack Oh ja, die Website dieses Forums beispielsweise ließe sich ganz hervorragend auf meinem Telefon bedienen… wenn man Finger wie eine Pinzette und Augen wie ein Adler hätte.

Habe ich jetzt leider nicht, durch einen dummen Zufall der Evolution, insofern hilft mir die hohe Auflösung meines Telefons da leider gar nicht, so dass ich mir wirklich jedes Mal wieder wünsche, die phpbb-Entwickler hätten dieselbe Rücksicht auf Mobilgeräte genommen wie lackschuh.
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Leonidas hat geschrieben:Wobei jetzt so ne hohe Auflösung auch nicht unbedingt heißt dass man eine Seite so auf einem 3.8" mit dicken Fingern gut bedienen kann. Andererseis gibts Tablets. Die haben AFAK die gleichen User-Agents und vertragen Desktop-Webseiten eher.
Dann entwickelt man die Seite am besten für Tablets und nutzt die gleiche als Desktop Webseite. Kleine Links, Buttons und Text, sowie hover Spielereien stören auf einem Tablet genauso wie auf einem iPhone. Außerdem sollte man darauf achten dass man bei Geräten mit Retina Displays entsprechende Bilder verwendet.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

DasIch hat geschrieben:Dann entwickelt man die Seite am besten für Tablets und nutzt die gleiche als Desktop Webseite. Kleine Links, Buttons und Text, sowie hover Spielereien stören auf einem Tablet genauso wie auf einem iPhone. Außerdem sollte man darauf achten dass man bei Geräten mit Retina Displays entsprechende Bilder verwendet.
Wobei Hover-Spielereien eigentlich platformunabhängig stören. Das ist ja etwa das Schöne an Bootstrap, dass sich da jemand zumindest irgendwelche Gedanken gemacht hat und das es so überall so einigermaßen nutzbar ist.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten