django-前后端交互

創(chuàng)建一個html文件用來用戶注冊:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>

    <form action="/createuser/" method="post">

        <p>{{ obj.user }}</p>
        <p>{{ obj.group }}</p>

    <input type="submit" value="提交" />

</form>

</body>
</html>

配置好訪問:

image.png

創(chuàng)建用戶數(shù)據(jù):

def createuser(request):

    obj = UserForm.CreateForm(request.POST)

    if request.method == 'POST':
        if obj.is_valid():
            all_data = obj.clean()

            group_id = all_data['group']
            username = all_data['user']

            # 1国夜、先獲取字典表里的數(shù)據(jù)對象
            # group_obj = models.GroupNew.objects.get(id=group_id)
            # # 創(chuàng)建用戶數(shù)據(jù)
            # models.UserNew.objects.create(user=username, group=group_obj)

            # 2试读、 直接傳group_id不需獲取對象
            models.UserNew.objects.create(user=username, group_id=group_id)

        else:
            pass
    return render(request, 'foreign/createuser.html', {'obj': obj})

然后再vires.py里面就可以直接拿到前端傳來的字典钟病,直接創(chuàng)建數(shù)據(jù)了屯掖。注意用**的方式傳參

from app01.forms import foreign  as UserForm


def createuser(request):

    obj = UserForm.CreateForm(request.POST)

    if request.method == 'POST':
        if obj.is_valid():
            all_data = obj.clean()
            print all_data
            # group_id = all_data['group']
            username = all_data['user']

            # 1裸删、先獲取字典表里的數(shù)據(jù)對象
            # group_obj = models.GroupNew.objects.get(id=group_id)
            # # 創(chuàng)建用戶數(shù)據(jù)
            # models.UserNew.objects.create(user=username, group=group_obj)

            # 2噪径、 直接傳group_id不需獲取對象

            models.UserNew.objects.create(**all_data)   #用**的方式傳遞字典參數(shù)

        else:
            pass
    return render(request, 'foreign/createuser.html', {'obj': obj})

下面我們可以來展示一下數(shù)據(jù):

在views.pu里把數(shù)據(jù)全部拿到棍掐,返回到前端:

from app01.forms import foreign  as UserForm


def createuser(request):

    obj = UserForm.CreateForm(request.POST)

    if request.method == 'POST':
        if obj.is_valid():
            all_data = obj.clean()
            models.UserNew.objects.create(**all_data)
        else:
            pass

    user_list = models.UserNew.objects.all()   #獲取到表中的全部數(shù)據(jù)

    return render(request, 'foreign/createuser.html', {'obj': obj, 'user_list': user_list})

前端頁面獲取數(shù)據(jù)展示:

在前端頁面不能顯示用戶組的id,而是直接顯示用戶組的名稱

因為外鍵對應的字段是一個對象藏雏,這個對象代指的是字典表中的一行數(shù)據(jù),所以我們在前端取到字典表中的數(shù)據(jù)用“.”獲取

<table>
        {% for item in user_list %}
            <tr>
                <td>{{ item.user }}</td>
                <td>{{ item.group.groupname }}</td>    從對象中獲取數(shù)據(jù)用"."
            </tr>
        {% endfor %}
    </table>

我們在前端用get的方法獲取數(shù)據(jù)作煌,

在瀏覽器的url后追加字符 http://127.0.0.1:8000/createuser/?group=CFO

例如:我們要展示CFO組里面所以得用戶掘殴,在views里要如何寫呢?

我們在前端用get的方法獲取數(shù)據(jù)粟誓,

在瀏覽器的url后追加字符   http://127.0.0.1:8000/createuser/?group=CEO

例如:我們要展示CEO組里面所以得用戶奏寨,在views里要如何寫呢?

from app01.forms import foreign as UserForm

def createuser(request):

obj = UserForm.CreateForm(request.POST)

if request.method == 'POST':
    if obj.is_valid():
        all_data = obj.clean()
        models.UserNew.objects.create(**all_data)
    else:
        pass
val = request.GET.get('group')
user_list = models.UserNew.objects.filter(group__groupname=val)   # 去字典表里的數(shù)據(jù)時用雙下劃線

return render(request, 'foreign/createuser.html', {'obj': obj, 'user_list': user_list})
總結(jié)
創(chuàng)建數(shù)據(jù):

1鹰服、根據(jù)對象級別來操作表病瞳。
表中有外鍵的字段代指的就是另外一張表的一行數(shù)據(jù)。在Models里的表現(xiàn)形式就是一個對象悲酷,那么我們創(chuàng)建這張表時套菜,給外鍵的字段傳值時也應該傳一個對象,而從前臺獲取到的是一個數(shù)字“1”设易,1不是一個對象逗柴,根據(jù)這個“1”先創(chuàng)建一個字典表的對象,所以根據(jù)前臺的“1”先獲取字典表里對應的數(shù)據(jù)對象顿肺,把這個對象傳遞到創(chuàng)建表時所需的對象參數(shù)即可戏溺。
(其實也是把對象轉(zhuǎn)換成sql語句拼接成帶_id的樣式,有一種多此一舉的感覺)

2屠尊、根據(jù)數(shù)據(jù)庫級別來操作表旷祸。
首先我們可以先查看一下數(shù)據(jù)庫表中的外鍵值的樣式 user_group_id∷侠ィ“_id”在models沒有定義的肋僧,是django自動為我們定義的樣式。所以我們在向數(shù)據(jù)庫中插入數(shù)據(jù)的時候控淡,外鍵的字段應該加上_id嫌吠,這樣就可以直接傳從前臺獲取的數(shù)字了。
(可以再form中修改外鍵的值掺炭,加"_id",這樣傳到后臺的數(shù)據(jù)就能直接拿到一個字典辫诅,在用**的方式傳值創(chuàng)建數(shù)據(jù))

獲取數(shù)據(jù):

跨表取數(shù)據(jù)用 "."
因為在models里的外鍵代指的是另外一張表的一行數(shù)據(jù),且這個數(shù)據(jù)類型為一個對象涧狮。
那么就可以根據(jù)這個對象直接找到那行數(shù)據(jù)里對應的字段炕矮。用 “.”獲取
在前端頁面就可以{{item.group.groupname}}方式獲取到么夫。

跨表過濾數(shù)據(jù)時用 “__”
過濾數(shù)據(jù)用雙下劃線 “__”(group__groupname=val),如果有多張表建立外鍵繼續(xù)用雙下劃線“__”跨表查詢數(shù)據(jù)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末肤视,一起剝皮案震驚了整個濱河市档痪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌邢滑,老刑警劉巖腐螟,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異困后,居然都是意外死亡乐纸,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進店門摇予,熙熙樓的掌柜王于貴愁眉苦臉地迎上來汽绢,“玉大人,你說我怎么就攤上這事侧戴∧眩” “怎么了?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵酗宋,是天一觀的道長久窟。 經(jīng)常有香客問我,道長本缠,這世上最難降的妖魔是什么斥扛? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮丹锹,結(jié)果婚禮上稀颁,老公的妹妹穿的比我還像新娘。我一直安慰自己楣黍,他們只是感情好匾灶,可當我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著租漂,像睡著了一般阶女。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上哩治,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天,我揣著相機與錄音憔杨,去河邊找鬼蒜胖。 笑死消别,一個胖子當著我的面吹牛抛蚤,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播寻狂,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼岁经,長吁一口氣:“原來是場噩夢啊……” “哼缀壤!你這毒婦竟也來了怀读?” 一聲冷哼從身側(cè)響起菜枷,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤啤誊,失蹤者是張志新(化名)和其女友劉穎拥娄,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體牡昆,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡丢烘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年播瞳,在試婚紗的時候發(fā)現(xiàn)自己被綠了免糕。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片石窑。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡松逊,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出楼咳,到底是詐尸還是另有隱情,我是刑警寧澤余耽,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布碟贾,位于F島的核電站袱耽,受9級特大地震影響干发,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜冀续,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一洪唐、第九天 我趴在偏房一處隱蔽的房頂上張望吼蚁。 院中可真熱鬧,春花似錦功炮、人聲如沸薪伏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至存捺,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間岗钩,已是汗流浹背兼吓。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工视搏, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留县袱,地道東北人式散。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓杂数,卻偏偏與公主長得像揍移,于是被迫代替她去往敵國和親反肋。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,675評論 2 359

推薦閱讀更多精彩內(nèi)容