本人開發環境直接用的是pycharm商業版,直接可以新建一個Django工程,大家可以在這裏直接設置application name,這個也將會在下面會大家詳細介紹。
本次實戰,主要涉及如下5個方面,分別對應該文件下的jinhong、static、templates、untitled4、travle.db,如果換成專業名詞的話就是:
- jinhong對應的是Django裏面的APP【核心】,在此開發者可進行數據的傳輸和計算、創建類和視圖、以及實現數據庫表的提取。
- static文件,一般用來存儲css、js和一些靜態文件
- templates用來存儲前端模板
- untitled4,這是對應的Django項目,在這裏可以設置數據庫參數、url跳轉;
- travle.db則就是數據庫。
下面是一些經常可能剛入門經常遇到的問題:
目錄
如何實現數據庫之間的連接
我在此次實戰中用到了兩種方式:第一種是寫一個類用來進行直接連接數據庫,第二種是通過使用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'界面模板。
其實還有很多東西可以寫的,有時間繼續更新!!!!!