3.6 KiB
title | localeTitle |
---|---|
Receive data with your web server | تلقي البيانات مع خادم الويب الخاص بك |
بمجرد إعداد خادم الويب الخاص بك والتأكد من أنه يمكن أن يقدم بعض المحتويات المفيدة ، قد ترغب في جعله أكثر تفاعلية عن طريق السماح له بقبول البيانات. دعونا نبدأ بكتابة بعض الرموز:
`package main
import ( "net/http" "html/template" )
type PAGE struct { NAME string }
var page PAGE
func main() { http.HandleFunc("/", servePage) http.ListenAndServe(":8080", nil) }
func servePage(writer http.ResponseWriter, reqest *http.Request) { page.NAME = request.FormValue("name") template := template.New("sayHello") template, _ = template.Parse("Hello {{.NAME}}!") template.Execute(writer, page) } `
دعونا كسر هذا الرمز إلى أسفل. أولاً وقبل كل شيء ، نبدأ باستيراد net/http
لخادم الويب و html/template
أجل templating. تفترض هذه المقالة أنك تعرف بالفعل كيفية القالب في Go. إذا كنت لا تعرف هذا حتى الآن ، يجب عليك قراءة المقال حول templating أولاً.
ثم نقوم بإنشاء نوع يسمى PAGE
، مع فتحة واحدة تسمى NAME
(هذه string
). كما نقوم أيضًا بإنشاء متغير عالمي يسمى page
وهو من النوع PAGE
: البنية التي أنشأناها للتو.
في دالة servePage
يوجد شيء واحد مهم بالفعل لهذه المقالة: طريقة FormValue
نستخدمها في request
.
قبل أن نتابع ، تحتاج أولاً إلى معرفة كيفية إنشاء URL
. لنأخذ URL
التالي كمثال:
https://google.com/search?q=free+code+camp
إذا أدخلت URL
أعلاه في المتصفح ، فستجري بحثًا في Google عن free code camp
. تم بناء URL
على النحو التالي:
https://
- هذا هو البروتوكولgoogle.com
- هذا هو اسم النطاق والمنفذ (في هذه الحالة لا يوجد منفذ مذكور - لذلك يستخدم المتصفح المنفذ الافتراضي للبروتوكول)/search
- هذا هو المسارq=free+code+camp
- هذا هوquery
الاستعلام هو الجزء الذي نتحدث عنه في هذه المقالة. يشاهد خادم Google URL
هذا وبسبب السمة q
في الاستعلام وقيمة q
- في هذه الحالة free+code+camp
- فإنه يعرف المكان الذي يجب البحث عنه.
يمكننا أيضًا تطبيق ذلك على خادمنا. لنطلق البرنامج وننقل المتصفح إلى:
http://localhost:8080/?name=world
سيكون الرد:
Hello world!
كيف يعمل هذا؟ حسنًا ، لقد أعطينا FormValue
معلمة name
. بهذه الطريقة ، تعلم FormValue
أننا نريد قيمة سمة name
في طلب البحث. في هذه الحالة هو world
، لذلك الأسلوب يعود world
. ثم يتم وضع تلك السلسلة في متغير page
ويقوم القالب بالباقي.
هذا بالطبع تطبيق بسيط لهذه الوظيفة ، ولكن يمكنك القيام بالكثير من الأشياء بها. على سبيل المثال: يمكنك قبول عناوين البريد الإلكتروني والسماح للبرنامج بتخزينها في ملف.