ห้องสมุด AJAX ที่ดีที่สุดสำหรับ Django คืออะไร [ปิด]


108

ห้องสมุด AJAX ใดดีที่สุดสำหรับ django และเพราะเหตุใด
กำลังมองหาหนึ่งที่มีฐานข้อมูลแบบฝึกหัดหนังสือและเอกสารโดยละเอียดขนาดใหญ่
วิธีใดที่ง่ายที่สุดในการทำงานกับ? ข้อใดอยู่ในการพัฒนาในช่วงต้น แต่แสดงให้เห็นถึงคำมั่นสัญญาที่ยิ่งใหญ่สำหรับอนาคต

ขอแสดงความนับถือ
chriss


เปลี่ยนชื่อคำถามของคุณเป็นสิ่งที่เกี่ยวข้องมากขึ้น
mmcdole

4
จะเป็นการดีที่จะชี้แจงว่านี่เป็นคำถามเกี่ยวกับไลบรารี javascript (ต้นแบบ js, jquery, dojo ... ) หรือไลบรารี Django / Python (dajax ... )
Steve Bennett

ดูเหมือนว่าคำตอบในที่นี้จะถูกเลิกใช้อย่างมากเนื่องจากเฟรมเวิร์กเช่นDjango REST FrameworkและTastypieดูเหมือนจะมีการใช้งานมากขึ้นและตอนนี้เป็นที่ต้องการของนักพัฒนาส่วนใหญ่ในขณะที่คนอื่น ๆ ดูเหมือนจะมีปัญหากับเฟรมเวิร์กที่ได้รับการดูแลน้อยในขณะนี้ (เช่นDajax ).
Paul-Sebastian Manole

คำตอบ:


70

ผมขอแนะนำให้jQuery มีบทเรียนมากมายเกี่ยวกับวิธีการใช้งาน

http://lethain.com/entry/2007/dec/11/two-faced-django-part-5-jquery-ajax/

http://lethain.com/entry/2007/dec/01/using-jquery-django-autocomplete-fields/

http://vincentxu.net/minimal-ajax-in-django-with-jquery-post

หมายเหตุ: Microsoft ยังประกาศเมื่อไม่นานมานี้ว่า jQuery จะเป็นเฟรมเวิร์กฝั่งไคลเอ็นต์อย่างเป็นทางการสำหรับ ASP.NET MVC ดังนั้นจึงควรทราบไม่ว่าคุณจะใช้เฟรมเวิร์กฝั่งเซิร์ฟเวอร์ใด


หมายเหตุ: ลิงก์สองลิงก์แรกใช้งานไม่ได้อีกต่อไป
Garrett Hyde

3
ลิงก์ดูเหมือนจะกลับมาออนไลน์
Soviut

3
บังเอิญไม่เคยสร้างการตอบสนอง JSON เหมือน"{'response_text': '"+post_text+" recieved.'}"ในลิงค์ที่สาม นำเข้าjsonหรือsimplejsonใช้งานdumps!
Flash

2
แม้ว่า jQuery จะยอดเยี่ยม แต่น่าเศร้าที่ Django ไม่มีการรวมอย่างชัดเจน (นอกผู้ดูแลระบบ) กับรูปแบบหรือมุมมอง
Cerin

2
ลิงก์สุดท้ายไม่ทำงานอีกต่อไป
svenwildermann

62

ฉันคิดว่านี่อาจเป็นสิ่งที่คุณกำลังมองหา: django-dajax

เอกสารค่อนข้างดี API แบบง่าย สะอาดและดีมาก ฉันวางแผนที่จะใช้มันมากขึ้นในบางโครงการของฉัน เป็นไลบรารี JS ที่ไม่เชื่อเรื่องพระเจ้าและทำงานได้ดีกับ jQuery ถ้านั่นคือสิ่งที่คุณต้องการ

อัพเดท:

โซลูชันอื่นที่คล้ายกับ dajaxice แต่ไม่ใช่ dajax มาตรฐาน

  • https://github.com/joestump/django-ajax - โซลูชันของ Joe Stump ที่ทำให้การสร้างจุดสิ้นสุดที่เงียบสงบเป็นเรื่องง่ายจากแบบจำลองของคุณ
  • https://bitbucket.org/jespern/django-piston/wiki/Home - แนวคิดที่คล้ายกัน แต่แข็งแกร่งกว่าเล็กน้อย คุณสามารถกำหนดรูปแบบข้อมูลสำหรับปลายทางของคุณ (xml vs json ฯลฯ )
  • https://github.com/toastdriven/django-tastypie - คล้ายกับลูกสูบ แต่ฉันโชคดีกว่าที่ได้ลิ้มรส

ในท้ายที่สุดพวกเขาส่วนใหญ่ทำงานเหมือนกัน

  • กำหนด / รวมเส้นทาง URL ที่กำหนดไว้ล่วงหน้า
  • ลงทะเบียนโมเดล / มุมมอง / ฟังก์ชันที่จะใช้เป็นแหล่งข้อมูล
  • สนุก.

UDATE2:

คำแนะนำนี้เก่ามาก ควรหาวิธีแก้ปัญหาอื่น ๆ


2
ฉันแปลกใจที่ไม่ได้รับการโหวต ดูดี. ดำน้ำในตอนนี้
Ben Keating

เป็นเวลา 1.5 ปีต่อมาและดูเหมือนว่าโครงการจะไม่มีการอัปเดตมากมายตั้งแต่นั้นมา นี่ยังเป็นคำแนะนำที่ดีอยู่ไหม
Tim Saylor

@TimSaylor ฉันจะบอกว่า DajaxIce ยังคงเป็นไลบรารีที่ค่อนข้างมั่นคงหากนี่เป็นวิธีการแก้ปัญหาที่คุณกำลังมองหา: วิธีง่ายๆในการสร้างจุดสิ้นสุด ajax โดยพลการที่คุณสามารถใช้ในจาวาสคริปต์ โดยส่วนตัวฉันจะไม่ใช้ Dajax lib ปกติเนื่องจากคุณเขียนโค้ดการนำเสนอจำนวนมากในฟังก์ชันมุมมองของคุณ ที่กล่าวว่ามีโรงงานของไลบรารีที่มั่นคงสำหรับการสร้างจุดสิ้นสุด RESTful โดยอัตโนมัติจากโมเดลของคุณ (หรือข้อมูลอื่น ๆ โดยพลการ) (ฉันจะอัปเดตคำตอบพร้อมลิงก์)
Derek Reynolds

super lib สำหรับการใช้ ajax ใน django
Surya

1
หน้า Github สำหรับ Dajax ในขณะนี้กล่าวว่าShould I use django-dajaxice?-In a word, No. I created this project 4 years ago as a cool tool in order to solve one specific problem I had at that time
ผู้ใช้

16

ไม่มีอะไรเกี่ยวกับ Django ที่ทำให้ไลบรารีใด ๆ ง่ายขึ้นหรือทำงานได้ดีขึ้นกับเฟรมเวิร์ก เพียงแค่ใช้สิ่งที่เหมาะกับสมองของคุณที่สุด

ต้องบอกว่าความรู้สึกของฉันคือ jQuery เป็นที่นิยมมากขึ้นในโลกของ Django และเป็นสิ่งที่ฉันใช้เป็นการส่วนตัว ที่โดดเด่นที่สุดคือแอพจำนวนมากในPinaxต้องการ jQuery แอพที่แชร์อื่น ๆ และข้อมูลโค้ดสำหรับ Django:

http://www.djangosnippets.org/tags/jquery/
http://code.google.com/p/django-ajax-validation/
http://code.google.com/p/django-todo/
http: //code.google.com/p/donita/



7

ชำระเงินDajax :

โครงการ Dajax

ไลบรารี AJAX ที่ใช้งานง่ายสำหรับ Django

ไลบรารีที่รวดเร็วง่ายและมีน้ำหนักเบาเพื่อใช้ AJAX ภายในโครงการ django ของคุณ พร้อมใช้งานใน 5 นาที

Dajax เป็นเครื่องมือที่มีประสิทธิภาพในการพัฒนาตรรกะการนำเสนอแบบอะซิงโครนัสในเว็บแอปพลิเคชันโดยใช้ python และแทบไม่มีบรรทัดของซอร์สโค้ด JS

รองรับเฟรมเวิร์ก JS ที่ได้รับความนิยมสูงสุด 4 แบบ ได้แก่ Prototype, jQuery, Dojo และ mootols


หลังจากที่ฉันโพสต์คำตอบนี้ฉันสังเกตเห็นว่ามีคนพูดถึง Dajax แล้ว แต่คำตอบนั้นไม่ได้อธิบายถึงสิ่งที่ห้องสมุดเสนอ (และไม่สามารถแสดงความคิดเห็นได้)
denysonique

1
และถ้าคุณตรวจสอบ Github READMEs คุณจะพบว่า "ฉันควรใช้ django-dajax หรือ django-dajaxice หรือไม่ฉันสร้างโครงการเหล่านี้เมื่อ 4 ปีที่แล้วเป็นเครื่องมือที่ยอดเยี่ยมเพื่อแก้ปัญหาเฉพาะที่ฉันมีในตอนนั้น วันนี้การใช้โครงการเหล่านี้เป็นความคิดที่ไม่ดี "
jwd630

4

ฉันใช้ jquery, YUI และ Dojo ในโครงการ django ต่างๆสำเร็จแล้ว ไม่มีอะไรเกี่ยวกับสิ่งที่ทำให้ดีขึ้นเมื่อใช้กับ django โดยเฉพาะ ฉันเห็นด้วยกับ jpartogy ว่า mochikit อาจพอดีกับ django มากกว่าที่อื่น ๆ เพียงเพราะ API "pythonic" (เหมือนบิด) มันขึ้นอยู่กับสิ่งที่คุณกำลังมองหาในกรอบของ ajax

โดยส่วนตัวแล้วฉันชอบสิ่งที่ jQuery สามารถทำได้กับจำนวนโค้ดที่กำหนด แต่ความท้าทายที่ยิ่งใหญ่ที่สุดในการเขียนโค้ด jQuery คือทำให้อ่านได้

YUI มีรายละเอียดมากกว่าเฟรมเวิร์กอื่น ๆ มากเนื่องจากมีการกำหนดแบบแผนในการใช้เนมสเปซ แต่มีทางลัดในการเขียนโค้ดน้อยลงและหลีกเลี่ยงการพยายามทำให้จาวาสคริปต์ดูเหมือนอย่างอื่น

Dojo พยายามทำให้ javascript ดูเหมือน Java และจากประสบการณ์ของฉันค่อนข้างช้า มีวิดเจ็ตที่ดีและการใช้งานจาวาสคริปต์ของภาษา django templating (ซึ่งค่อนข้างมีประโยชน์แม้จะอยู่นอกโครงการ django)

โดยส่วนตัวฉันหลีกเลี่ยงต้นแบบและ mootools เนื่องจากสามารถทำลายรหัสจาวาสคริปต์อื่น ๆ (หรือในทางกลับกัน)

หากคุณยังใหม่กับ javascript และ ajax ฉันขอแนะนำ jQuery เพราะเป็นวิธีที่ง่ายที่สุดในการเริ่มต้น แต่ฉันไม่คาดหวังว่าเฟรมเวิร์ก js ใด ๆ จะรวมเข้ากับ django เป็นส่วนใหญ่เพราะไม่จำเป็นต้องทำเช่นนั้น


2

+1 ถึง Soviut และ Daniel สำหรับคำตอบที่ดี Jquery เป็นกรอบที่ดี นอกจาก Pinax ยังมีแอปพลิเคชั่น Django "ใหญ่" อีกสองตัวที่ใช้: SatchmoและReview Board (ซึ่งเปลี่ยนจากเฟรมเวิร์กอื่น ... mootools IIRC)

นอกจากนี้ยังเป็นที่นิยมคือการใช้ Javascript ของคุณเองโดยไม่ต้องใช้เฟรมเวิร์กใด ๆ เช่นผู้ดูแลระบบ Django

ข้อเสนอแนะอื่น ๆ ที่ฉันอาจทำก็คือถ้าคุณเป็น Pythonhead ที่มีประสบการณ์มากคุณอาจชอบmochikitซึ่งถูกวิจารณ์ว่าเป็น 'pythonic' เกินไป ดูเหมือนว่าจะเป็นกรอบที่เลือกสำหรับ Turbogears แต่โดยส่วนตัวแล้วฉันไม่เคยเห็นโครงการ Django ใด ๆ ที่ใช้มัน


4
คำตอบที่ดียกเว้นวลีเกี่ยวกับการรีด JS ของคุณเอง ฉันจะไม่เรียกว่าเป็นที่นิยมฉันไม่เคยเห็นมันในแอป Django นอกเหนือจากผู้ดูแลระบบ Django และฉันไม่แนะนำให้ทำเช่นนั้น ทำไมต้องเอาหัวโขกกำแพงอิฐในเมื่อไม่ต้องทำ? +1 ที่นี่หากนำออก
Carl Meyer

ฉันไม่ได้บอกว่ามันเป็นความคิดที่ดี :) จาวาสคริปต์ของฉันอ่อนแอพอที่ฉันไม่มีทางเลือกดังนั้นฉันจึงใช้ jquery ฉันพูดถึงเรื่องนี้เนื่องจากฉันได้สำรวจไซต์ 4-5 แห่งที่ด้านบนสุดของรายการที่ djangosites.com และพบว่าทั้งหมดใช้ js ที่กำหนดเอง
Van Gale

ในความเป็นจริงแม้แต่ผู้ดูแลระบบ Django ก็เปลี่ยนไปใช้ JQuery: code.djangoproject.com/changeset/12297
Chris Lawlor

1

โอเคนี่อาจเป็นเรื่องส่วนตัวเนื่องจากคำจำกัดความของคำว่า 'ดีที่สุด' อาจมีความหมายแตกต่างกันไปสำหรับแต่ละคน แต่เนื่องจากคุณกำลังทำงานกับ Django นั่นหมายความว่าคุณจะได้รับมือกับไวยากรณ์ Python หนึ่งห้องสมุด Javascript เรื่องน่าทึ่งที่ไม่ได้รับการสัมผัสมากเกินไปMochikit ข้อดีของมันคือมีไวยากรณ์ที่โปรแกรมเมอร์ Python คุ้นเคย (เนื่องจากผู้สร้างเป็นโปรแกรมเมอร์ Python) มีเอกสารที่เขียนไว้ค่อนข้างดีเช่นกัน TurboGears พร้อมใช้งานทันทีรองรับ Mochikit


1

หากคุณต้องการทำงานกับ AJAX ในโปรเจ็กต์ django ของคุณที่มีการตั้งค่าน้อยมากและใช้งานง่ายข้อเสนอของฉันคือ:

django-ajax ( Github , Pypi )

ไลบรารี AJAX ที่รวดเร็วยืดหยุ่นและใช้งานง่ายสำหรับโครงการ django ประกอบด้วยมัณฑนากร ajax มิดเดิลแวร์ ajax ทางลัดและอื่น ๆ


0

วลี "Best AJAX Library" มีความเป็นส่วนตัวสูงและขึ้นอยู่กับความชอบส่วนบุคคลความรู้ที่มีอยู่ข้อกำหนดของงาน ฯลฯ เป็นต้น

ในขณะที่ฉันชอบ jQuery สำหรับทุกสิ่ง (เกือบ) ฉันรู้ว่าบางคนสาบานด้วย Dojo หรือ ExtJS อาจมีบางกรณีที่คุณต้องการใช้ jQuery แต่ข้อกำหนดอาจกำหนดให้คุณใช้ ExtJS

ทั้งหมดกล่าว. ใช้ jQuery jQuery หิน;)


0

Django ไม่ได้เชื่อมโยงกับฝั่งไคลเอ็นต์ ใช้อะไรก็ได้ที่คุณพอใจ Django เล่นได้ดีกับทุกสิ่งในพื้นที่นั้นเพราะคุณเพียงแค่เขียนลงในเทมเพลต

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.