快速入門Django開發教程(旅遊推薦系統實現教程)

本人開發環境直接用的是pycharm商業版,直接可以新建一個Django工程,大家可以在這裏直接設置application name,這個也將會在下面會大家詳細介紹。

本次實戰,主要涉及如下5個方面,分別對應該文件下的jinhong、static、templates、untitled4、travle.db,如果換成專業名詞的話就是:

  1. jinhong對應的是Django裏面的APP【核心】,在此開發者可進行數據的傳輸和計算、創建類和視圖、以及實現數據庫表的提取。
  2. static文件,一般用來存儲css、js和一些靜態文件
  3. templates用來存儲前端模板
  4. untitled4,這是對應的Django項目,在這裏可以設置數據庫參數、url跳轉;
  5. travle.db則就是數據庫。

 

下面是一些經常可能剛入門經常遇到的問題:

目錄

如何實現數據庫之間的連接

如何獲取前端的數據?

如何將後端的數據傳遞到前端:

前端中四則運算:

如何實現url的跳轉:

 

如何實現數據庫之間的連接

我在此次實戰中用到了兩種方式:第一種是寫一個類用來進行直接連接數據庫,第二種是通過使用app(jinhong)中的models調用。

第一種具體實現方式:

第二種具體實現方式:

這種則需要我們首先設置好對應的數據庫一些參數:

在終端執行如下代碼:

python manage.py inspectdb > jinhong\models.py

最好自動生成對應的modles數據。

如何獲取前端的數據?

 <form action="" method="post" name="reg_form">
                    {% csrf_token %}
                    <div class="d_left_1t">定製行程:</div>
                    <div class="d_left_1d">
                        <div class="d_left_1d_1">

                            <label class="w120">目的地:</label>
                            <input type="hidden" value="0" id="areaid_1" name="post_fields[mdd]">
                            <span id="load_area_1">
                                <select class="dq3" name="city" id="mz">
                                    <option value="0">請選擇</option><option value="beijing">北京</option><option
                                        value="shanghai">上海</option><option value="hangzhou">杭州</option><option
                                        value="changsha">長沙</option>
def index(request):
    if request.method == "POST" and request.POST:  # 如果請求是post方式且有數據
        city = request.POST["city"]
        people = int(request.POST["post_fields[cr]"].encode("utf-8")) + int(
            request.POST["post_fields[et]"].encode("utf-8"))
        sttime = request.POST["post_fields[cfrq]"].encode("utf-8")
       
        return HttpResponseRedirect('result2')
    return render(request, 'index.html', locals())

如何將後端的數據傳遞到前端:

def result(request):
    test2 = biginfo.city
    hs = [{}]
    fos = [{}]
    hos = [{}]
    los = [{}]
    # print (hs)
    return render(request, 'result2.html',
                  {'biginfo': biginfo, 'test2': test2, 'hs': hs, 'fos': fos, 'hos': hos, 'los': json.dumps(los)})

使用{% %}就可以引用變量了

 <div class="detail-journey-seprate-solid"></div>

                        <div class="J_JourneyItemd0-m0">
                        <div class="detail-journey-title">
                            <i class="icon detail-journey-label-note"></i>
                            行程概覽
                        </div>
                        <div class="detail-journey-desc"><p><font>
                            1、今天您將瀏覽-
                            {% for re in hs %}
                                {% if i == re.id %}
                                    <font color="#ff9702">{{ re.jiname }},</font>
                                {% endif %}
                            {% endfor %}
                            這些適合您的風景。
                            <p>2、也將享受到本地美食-
                                {% for re in fos %}
                                    {% if i == re.id %}
                                        <font color="#ff9702">{{ re.name }},</font>
                                    {% endif %}
                                {% endfor %}
                                可使用美團或者餓了麼搜搜。</p>
                            <p>
                                3、最後你將入住在
                                {% for re in hos %}
                                    {% if i == re.id %}
                                        <font color="#ff9702">{{ re.name }}</font>
                                    {% endif %}
                                {% endfor %},完成了一天的旅遊行程。
                            </p></font></p>
                        </div>

前端中四則運算:

對了Django裏面的四則運算貌似有點差異,具體差異如下:

#加法:
{{value|add:value2}}
#返回的結果是value+value2的值,假設你value爲40,value2爲60 ,則該表達式
#返回結果爲100
#減法
{{value|add -value2}}
#乘法
{% widthratio value1 value2 value3%}
#上面的代碼表示 value1/value2*value3,widthratio需要三個參數,進行乘法 只需將第二個參數等於1即可
#例: value1=10 value2=1 value3=2 返回的結果爲10/1*2=20
#除法
{% widthratio value1 value2 value3%}
#返回的結果是 (value1/value2)*value3  只需將value3等於1就能進行除法運算
#例: value1=100 value2=20 value3=1  返回的結果爲 (100/20)*1=5
 

如何實現url的跳轉:

url(r'^$', views.index, name='index'),對這端代碼進行解釋說明,r'^$'默認首頁、views.index啓動改視圖的函數、name='index'界面模板。

其實還有很多東西可以寫的,有時間繼續更新!!!!!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章