Pertanyaan Deteksi peramban seluler (bukan hanya iPhone) dalam tampilan python


Saya memiliki aplikasi web yang ditulis dalam Django yang memiliki satu halaman tertentu saya ingin menerapkan versi mobile dari template (dan logika yang sedikit berbeda) untuk. Saya ingin dapat menerapkannya dengan kode sudo ini:

def(myView)

  do some stuff

  if user-is-on-a-mobile-device:
     do some stuff
     return (my mobile template)

  else:
     do some stuff
     return (my normal template)

Saya tidak memiliki banyak waktu dan saya cukup awal dalam kurva belajar coding saya :) - Saya menemukan apa yang terlihat sebagai aplikasi yang sangat kuat yang disebut bloom untuk mendapatkan kemampuan perangkat seluler - http://code.google.com/p/django-bloom/wiki/BloomDevice Namun tampaknya membuat permintaan melalui JSON untuk mendapatkan banyak spesifikasi perangkat yang tidak saya perlukan, yang tampaknya sedikit tidak efisien bagi saya.

Apakah ada yang punya metode yang lebih sederhana? Deteksi saya tidak perlu 100%, hanya iPhone, iPod, android, dan perangkat utama ...

Apakah string http_user_agent memiliki semacam bendera seluler yang dapat saya periksa?


32
2018-02-23 19:47


asal


Jawaban:


Memperbarui:

Saya baru saja menemukan: http://code.google.com/p/minidetector/

Yang tampaknya melakukan apa yang saya inginkan, saya akan menguji sekarang. Jangan ragu untuk mengatakan bahwa saya salah!


19
2018-02-23 19:50



praktik terbaik: gunakan minidetector untuk menambahkan info tambahan ke permintaan, lalu gunakan konteks permintaan yang dibuat django untuk menyampaikannya ke templat Anda seperti itu.

from django.shortcuts import render_to_response
from django.template import RequestContext

def my_view_on_mobile_and_desktop(request)
    .....
    render_to_response('regular_template.html', 
                       {'my vars to template':vars}, 
                       context_instance=RequestContext(request))

kemudian di template Anda, Anda dapat memperkenalkan hal-hal seperti:

<html>
  <head>
  {% block head %}
    <title>blah</title>
  {% if request.mobile %}
    <link rel="stylesheet" href="{{ MEDIA_URL }}/styles/base-mobile.css">
  {% else %}
    <link rel="stylesheet" href="{{ MEDIA_URL }}/styles/base-desktop.css">
  {% endif %}
  </head>
  <body>
    <div id="navigation">
      {% include "_navigation.html" %}
    </div>
    {% if not request.mobile %}
    <div id="sidebar">
      <p> sidebar content not fit for mobile </p>
    </div>
    {% endif %>
    <div id="content">
      <article>
        {% if not request.mobile %}
        <aside>
          <p> aside content </p>
        </aside>
        {% endif %}
        <p> article content </p>
      </aricle>
    </div>
  </body>
</html>

15
2017-11-11 07:48



pergi untuk garpu minidetecor disebut django-mobi, itu termasuk dokumentasi tentang cara menggunakannya.

https://pypi.python.org/pypi/django-mobi


7
2018-03-19 14:50