只匹配數字:html
因此JS 正則的使用方式:前端
1 寫一個知足需求的js正則匹配式python
2 使用test來驗證是否符合web
那麼若是咱們想獲取裏面的數據該怎麼辦呢?正則表達式
exec:redis
默認只拿第一個django
使用分組:後端
全局匹配:服務器
注意:會從開始一直匹配,每次匹配一個,直到匹配完,會返回一個null 而後再匹配的話會從頭從新開始app
全局使用分組:
每次返回兩個值,第一個爲匹配的,第二個爲去除正則後的數據
複習下正則:
這裏再聲明一下,使用自定義動做的時候必定要加上return 才能取消自帶的動做
對於checkbox 來講,默認事件先執行,而後才執行自定的事件
完整驗證過程:
學習框架:
已知的有
1 jQuery UI
2 Bootstrap
BootStrap 可適用於前端展現及後端管理的均可以
響應式佈局效果:
在修改別人的插件的時候,要更改東西的時候就使用 important 表名最重要的!!! 這樣就不關心先後順序了
各類輪播圖等、 都有插件
全部web框架的本質:
python 3 中三種方式轉換爲字節:
判斷客戶端的請求路徑
使用字典形式,省去作if 判斷:
從文件中返回數據:
分開寫:
所謂各類名詞 就是下面的框架:
開始 Django
1 安裝
2 建立工程
3 運行
訪問:
添加一個自定義的url
from django.conf.urls import url from django.contrib import admin from django.shortcuts import HttpResponse def home(request): return HttpResponse('<h1>Frist</h1>') urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^home/', home), ]
寫一個時間更新的頁面:
from django.conf.urls import url from django.contrib import admin from django.shortcuts import HttpResponse def time(request): import time info = time.ctime() return HttpResponse(['<h1>時間服務器</h1>',info]) urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^time/', time), ]
建立一個網站的多個app用來處理不一樣的事情:
實踐:
而後把邏輯代碼放到新的目錄裏:
修改urls:
訪問:
app目錄的詳細解釋:
一行實現讀取文件:
文件是經過配置裏的目錄來配置的,否則找不到文件的
實踐:
1 編寫登錄邏輯函數
from django.shortcuts import HttpResponse from django.shortcuts import render def login(request): return render(request,'login.html') def time(request): import time info = time.ctime() return HttpResponse(['<h1>時間服務器</h1>',info])
2 編寫登錄頁面
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> label{ width: 80px; text-align: right; display: inline-block; } </style> </head> <body> <form action="/login" method="post"> <p> <label for="username">用戶名:</label> <input id="username" type="text" /> </p> <p> <label for="password">密碼:</label> <input id="password" type="text" /> <input type="submit" value="提交" /> </p> </form> </body> </html>
3添加路由
4 檢查配置
5 啓動並測試
靜態文件配置:
建立Django app 後首先須要操做:
使用靜態文件:
2 修改配置文件,添加靜態文件目錄
STATIC_URL = '/static/' STATICFILES_DIRS = ( os.path.join(BASE_DIR,'static'), )
3 添加靜態文件
4 修改html中的引用
5 測試
註釋掉跨站 csrf:
判斷用戶是GET 仍是POST
獲取用戶提交的信息:
程序裏寫:
完整的基本的用戶名密碼認證:
實踐:
1 修改html 增長name 在POST 提交的時候才能分辨是什麼內容,添加Django 特有的替換字符串的變量
action 的url 要和urls 裏配置的同樣,要麼都有/ 要麼都沒有,否則會報錯。
2 程序添加判斷請求方式,獲取輸入的數據,並判斷是否正確
3 實驗:
在html 頁面中使用for 循環來生成網頁信息:
獲取數據並添加到當前頁面:
HTML頁面:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body style="margin: 0"> <div style="height: 48px;background-color: #dddddd"></div> <div> <form action="/home" method="post"> <input type="text" name="username" placeholder="用戶名" /> <input type="text" name="email" placeholder="郵箱"/> <input type="text" name="gender" placeholder="性別"/> <input type="submit" value="添加" /> </form> </div> <div> <table> {% for row in user_list %} <tr> <td>{{ row.username }}</td> <td>{{ row.gender }}</td> <td>{{ row.email }}</td> </tr> {% endfor %} </table> </div> </body> </html>
2 添加路由並添加處理的函數
urls
業務邏輯函數
USER_LIST =[ {'username':'alex','email':'abc@12.com','gender':'男'}, {'username':'alex','email':'abc@12.com','gender':'男'} ] def home(request): if request.method == 'POST': #在request中獲取用戶提交的數據 u = request.POST.get('username') e = request.POST.get('email') g = request.POST.get('gender') temp = {'username':u,'email':e,'gender':g} USER_LIST.append(temp) return render(request,'home.html',{'user_list':USER_LIST})
3 啓動並測試
從新打開頁面也還有數據,可是重啓程序就沒有了,因此須要把數據寫到存儲中,例如寫入redis 中,就能夠持久化了
通過以上一些實踐,咱們大概瞭解了Djanago 的工做方式,下面還Django的處理流程及部件組成圖:
回顧一下以上的內容,作一個整理:
Django的程序完成開發流程:
模板語言的語法:
if 也能夠嵌套,直接在裏面寫,可是要記得寫上結尾符
EOF