透過Vue實現限制數入字數

我們都知道,平常在社群網站上會限制使用者輸入的字數。最具代表性的網站就是Twitter,Twitter限制一般使用者每次發表文章的字數在140字以內。讓使用者用最簡短的文字來表達想法。對於優化使用者體驗比較好的方式是,當使用者在輸入的同時,提示使用者還有多少字可以輸入,當使用這輸入的字數達到限制時,及時地停止使用者繼續輸入。 像這樣子限制使用者輸入字數的機制要如何來實現呢? 有兩的點需要注意: 如何計算使用者輸入了多少字? 當使用這輸入的字數達到限制時,該如何停止繼續輸入? 今天我們就要透過Vue.js來製作一個可以幫我們控制輸入字數的程式。首先,我們先準備好需要的HTML檔案。 <!DOCTYPE html> <html lang=“zh-TW”> <head> <meta charset=“UTF-8” /> <meta name=“viewport” content=“width=device-width, initial-scale=1.0” /> <meta http-equiv=“X-UA-Compatible” content=“ie=edge” /> <link rel=“stylesheet” href=“https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css” integrity=“sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO” crossorigin=“anonymous” /> <title>Start</title> </head> <body> <div id=“app” class=“container”> <div class=“row”> <div class=“col”> <textarea cols=“30”

Django--客製化Hello 頁面--關於urls.py 與 views.py 的說明

要透過Django製作網站,urls.py可說是一切的起點。

由於每當使用者在瀏覽器上面輸入網址的時,urls.py 就會帶領使用者到達指定點位置。因此,我們可以在urls.py 裡設定每個網址可以到達的地方。

例如,下面是urls.py預設的狀態(首度安裝完成後的狀態)。當我們啟動網站時,只要進入 http://127.0.0.1:8000/  就可以看到Django預設的首頁。

from django.contrib import admin

from django.urls import path


urlpatterns = [

path('admin/', admin.site.urls),

]



如果我們在瀏覽器的網址列中輸入 http://127.0.0.1:8000/admin/ 的話,urls.py 會帶我們去 admin指定的 admin.site.urls 頁面。( http://127.0.0.1:8000/admin/login/?next=/admin/ )


from django.contrib import admin

from django.urls import path


urlpatterns = [

path('hello/', admin.site.urls),

]


如上面的程式碼,現在我們將path('admin/', admin.site.urls), 改為 path('hello/', admin.site.urls), ,在瀏覽器的網址列中輸入 http://127.0.0.1:8000/admin/ ,將不再導向 admin.site.urls 頁面,反而會告訴你 :

Page not found (404) 。The current path, admin/, didn't match any of these.

但是,如果你在瀏覽器的網址列中輸入 http://127.0.0.1:8000/hello/ 時,urls.py 會帶我們去 hello 指定的 admin.site.urls 頁面。( http://127.0.0.1:8000/hello/login/?next=/hello/ )

urls.py 與views.py 的關係


接下來,我們改寫urls.py。在urls.py裡面的path寫上‘’,代表首頁,並且指定views.homePage為首頁要導向的位置。

from django.urls import path

urlpatterns = [
    path('', views.homePage),
]

接著,我們建立一個views.py檔案,並且在裡面寫上一個函數homePage,希望瀏覽器到達首頁時,會顯示出Hello字串:

def homePage(request):
    return 'Hello'

然後回到urls.py,加上

from . import views

讓urls.py 與views.py兩者關聯再一起。結果,我們得到錯誤訊息。

我們必須在views.py匯入HttpResponse。

from django.http import HttpResponse

並且改寫homePage函數為:

def homePage(request):
    return HttpResponse('Hello')

再執行一次伺服器,我們可以看到首頁( http://127.0.0.1:8000/)成功出現 Hello 的字串。
如果我們在把homePage函數改寫為:

def homePage(request):
    return HttpResponse('<h1>Hello</h1>')

重新整理,我們可以看到首頁( http://127.0.0.1:8000/)出現的 Hello 字串變大了。因為我們成功的替 Hello 加上了<h1>的html標籤。至此,我們已經完成了0到1的工作。現在我們可以來進行1到多的工作。我們可以透過同樣的方式增加另一個頁面:page。

首先,在 urls.py 增加一行: path('page/', views.inPage),

from django.urls import path
from . import views

urlpatterns = [
path('', views.homePage),
path('page/', views.inPage),
]

然後,在views.py增加一個新的函數:inPage。

def inPage(request):
    return HttpResponse(' <h1> Hello Inside Page </h1> ')

再執行一次伺服器,如果你可以看到page頁面( http://127.0.0.1:8000/page/)成功出現 Hello Inside Page 的字串,就表示已經成功的複製第二個頁面。

留言

這個網誌中的熱門文章

用Python的條件實現電影分級流程

Vue元件實作,將HTML網頁Vue元件化

Python基礎篇--[條件]如果發生這種狀況時,我該怎麼辦?