day18 js 正則,UI框架,Django helloworld 以及完整工做流程

JS正則:
   text     判斷字符串是否符合規定的正則表達式
   exec    獲取匹配的數據
 
默認狀況下:
只要能匹配到就返回true 不然返回false

只匹配數字:html

 

 

因此JS 正則的使用方式:前端

1 寫一個知足需求的js正則匹配式python

2 使用test來驗證是否符合web

 

那麼若是咱們想獲取裏面的數據該怎麼辦呢?正則表達式

exec:redis

默認只拿第一個django

使用分組:後端

全局匹配:服務器

 注意:會從開始一直匹配,每次匹配一個,直到匹配完,會返回一個null 而後再匹配的話會從頭從新開始app

 

全局使用分組:

每次返回兩個值,第一個爲匹配的,第二個爲去除正則後的數據

複習下正則:

多行匹配:
默認:

 使用多行匹配:
會把每一行的開頭都做爲一個字符串的開頭來匹配,儘管這是一個字符串!

 

 

這裏再聲明一下,使用自定義動做的時候必定要加上return  才能取消自帶的動做

對於checkbox 來講,默認事件先執行,而後才執行自定的事件

 

 

完整驗證過程:

 1 js 前端驗證  (能夠禁用,一旦禁用,只能靠後端驗證)
 2 後端python 驗證

 

 

 學習框架:

 已知的有

1 jQuery UI

2 Bootstrap

 


BootStrap 可適用於前端展現及後端管理的均可以

響應式佈局效果:

 

 

在修改別人的插件的時候,要更改東西的時候就使用 important 表名最重要的!!! 這樣就不關心先後順序了

 

 

 各類輪播圖等、  都有插件

 

 

全部web框架的本質:

 

 

 

使用一個模塊,使用python3

 

 

python 3 中三種方式轉換爲字節:

 

 

 判斷客戶端的請求路徑

 

 

使用字典形式,省去作if 判斷:

 

 

從文件中返回數據:

 

 

分開寫:

 

 所謂各類名詞 就是下面的框架:

 

開始 Django

1 安裝

2 建立工程

3 運行

 

訪問:

 

 

 

 

添加一個自定義的url

 

 

 

實踐:
修改 urls.py
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 後首先須要操做:

 使用靜態文件:

 

 

 

實踐:
1 創靜態目錄

 

2  修改配置文件,添加靜態文件目錄

STATIC_URL = '/static/'
STATICFILES_DIRS = (
    os.path.join(BASE_DIR,'static'),
)

3  添加靜態文件

 

4  修改html中的引用

 

5 測試

 

 

 註釋掉跨站 csrf:

 

 

 

 

 判斷用戶是GET 仍是POST

 

 

 獲取用戶提交的信息:

 

 

判斷數據:
若是須要跳轉須要用到redirect 模塊,須要導入:

 

Django特有的數據交互方式:
用戶登錄信息不正確後返回一個錯誤信息

 

程序裏寫:

 

 

 完整的基本的用戶名密碼認證:

 

 

實踐:

1 修改html 增長name 在POST 提交的時候才能分辨是什麼內容,添加Django 特有的替換字符串的變量

action 的url 要和urls 裏配置的同樣,要麼都有/ 要麼都沒有,否則會報錯。

2 程序添加判斷請求方式,獲取輸入的數據,並判斷是否正確

 

 3 實驗:

 

 在html 頁面中使用for 循環來生成網頁信息:

 

 獲取數據並添加到當前頁面:

 

HTML頁面:

 
實踐:
1 添加靜態頁面,並作能夠for 循環的頁面
<!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

相關文章
相關標籤/搜索