Python之路-(js正則表達式、前端頁面的模板套用、Django基礎)


js正則表達式

前端頁面的模板套用

Django基礎

 

js正則表達式:

1、定義正則表達式

  • /.../  用於定義正則表達式
  • /.../g 表示全局匹配
  • /.../i 表示不區分大小寫
  • /.../m 表示多行匹配

 

  登錄注冊驗證:

    test:

      判斷字符串是否符合規定的規則

        rep = /\d+/;   (定義規則)

        rep.test('')   (引號里面必須包含字母和數字才返回true,否則為false)

 

        rep = /^\d+$/; (只有是純數字時候才返回true,否則是false)

    exec:

      獲取匹配的數據

示例一:

rep = /\d+/;
/\d+/
str = 'hehe_99_ddd_33_gg'
"hehe_99_ddd_33_gg"
rep.exec(str)
["99"]
rep.exec(str)
["99"]
rep.exec(str)
["99"]
View Code

 

示例二:

關鍵字只匹配開頭的一個關鍵字

text = "JavaScript is more fun than Java or JavaBeans!"
"JavaScript is more fun than Java or JavaBeans!"

var pattern = /\bJava\w*\b/;
undefined

pattern.exec(text)
["JavaScript"]
View Code

 

關鍵字二次匹配(分組匹配)

text = "JavaScript is more fun than Java or JavaBeans!"
"JavaScript is more fun than Java or JavaBeans!"
var pattern = /\bJava(\w*)\b/;
undefined
pattern.exec(text)
["JavaScript", "Script"]
View Code

 

關鍵字全局匹配

text = "JavaScript is more fun than Java or JavaBeans!"
"JavaScript is more fun than Java or JavaBeans!"
var pattern = /\bJava\w*\b/g;
undefined
pattern.exec(text)
["JavaScript"]
pattern.exec(text)
["Java"]
pattern.exec(text)
["JavaBeans"]
pattern.exec(text)
null
pattern.exec(text)
["JavaScript"]
pattern.exec(text)
["Java"]
pattern.exec(text)
["JavaBeans"]
pattern.exec(text)
null
View Code

 

關鍵字分組全局匹配

text = "JavaScript is more fun than Java or JavaBeans!"
"JavaScript is more fun than Java or JavaBeans!"
var pattern = /\bJava(\w*)\b/g;
undefined
pattern.exec(text)
["JavaScript", "Script"]
pattern.exec(text)
["Java", ""]
pattern.exec(text)
["JavaBeans", "Beans"]
pattern.exec(text)
null
pattern.exec(text)
["JavaScript", "Script"]
pattern.exec(text)
["Java", ""]
pattern.exec(text)
["JavaBeans", "Beans"]
pattern.exec(text)
null
View Code

 

多行匹配:()

text = "JavaScript is more fun than Java or \nJavaBeans!"
"JavaScript is more fun than Java or 
JavaBeans!"
var pattern = /^Java(\w*)/gm;
undefined
pattern.exec(text)
["JavaScript", "Script"]
pattern.exec(text)
["JavaBeans", "Beans"]
View Code

 

多行匹配:(只匹配每行開始的關鍵字,不進行二次分組匹配)

Regex

Hide network messages
All
Errors
Warnings
Info
Logs
Debug
Handled

text = "JavaScript is more fun than \nJava or JavaBeans!"
"JavaScript is more fun than 
Java or JavaBeans!"
var pattern = /^Java\w*/gm;
undefined
pattern.exec(text)
["JavaScript"]
pattern.exec(text)
["Java"]
pattern.exec(text)
null
pattern.exec(text)
["JavaScript"]
pattern.exec(text)
["Java"]
pattern.exec(text)
null
View Code

 

前端頁面的模板套用:

    1、EasyUI

      使用時倒入CSS和jquery即可

    2、jQueryUI

      使用時倒入CSS和jquery即可

    

    上面兩種都是比較散的功能,偏向於后台管理。

 

    3、Bootstrap:

      全寨式綜合性

 

    4、Bootstrap開源模板,網上多的去了。

      

      響應式
        @media

寫法:
@media (min-width:900px){
  .c2{
    background-color:red  
    }  
}
我讓頁面寬度小於900像素后背景色變成紅色
View Code

 

      圖標、字體
        @font-face

        指定使用哪個字體文件,一般在bootsrap里面找到圖標文件,直接復制html中的代碼,占到自己的html中即可。

      bootrap導入方法:

      1、下載bootrap文件。

      2、導入方式

 

 

WEB框架:

  轉載於老男孩教育銀角大王的web架構篇:http://www.cnblogs.com/wupeiqi/articles/5237672.html

  本質:

    眾所周知,對於所有的Web應用,本質上其實就是一個socket服務端,用戶的瀏覽器其實就是一個socket客戶端。

#!/usr/bin/env python
#coding:utf-8
  
import socket
  
def handle_request(client):
    buf = client.recv(1024)
    client.send("HTTP/1.1 200 OK\r\n\r\n")
    client.send("Hello, Seven")
  
def main():
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock.bind(('localhost',8000))
    sock.listen(5)
  
    while True:
        connection, address = sock.accept()
        handle_request(connection)
        connection.close()
  
if __name__ == '__main__':
    main()
View Code

 

  MVC
    Model View Controller
    數據庫 模板文件 業務處理


  MTV

    Model Template View
    數據庫 模板文件 業務處理

 

Django基礎:

  准備環境:

  python環境變量

  pip環境變量添加

 

 1、安裝

  pip3 install django

  安裝完成以后,在pip這個Scripts目錄會生成兩個文件。

  

  

創建項目方法一:

 

  1、創建項目

   django-admin.exe startproject mysite

   2、運行項目

    進入到生成的項目目錄,

    例如:

      cd mysite  (這個項目下面有個manage.py文件,用python執行它即可啟動)

      python manage.py runserver

    

    

 

    注意:有人會說了,你這個創建完怎么跟pip文件一個目錄下,這樣不方便,那怎么弄呢,下面我看。

    上面我們創建了pip文件的環境變量,剛好django兩個文件也生成到了里面,這樣我們可以把項目生成到其它盤里。

    例如:我們要放到D盤根目錄里。

      1、進入D盤里面

      2、生成項目

      

    推薦在pycharm里面只打開一個django項目,不要和其它項目都放到里面,這樣導入模塊時候會誤導你的判斷。

 

創建項目方法二:

 

    這個比較簡單,就是通過pycharm幫我們創建項目。

  

  

 

  

  怎么樣,是不是省了很多事兒。

 

 

 

 

 

創建業務線:

     3、一般一個項目里面有很多的業務線,例如資產管理、監控、后台管理等等,這樣的話我們需要一個業務線(app),需要在project里面單獨給一個業務線創建一個app。

    建議,進入項目名稱的同級目錄,然后執行生成命令。

    python manager.py startapp cmdb

    python manager.py startapp openstack

    python manager.py startapp moniter

     

    

    項目文件介紹:
      - mysite # 對整個程序進行配置
        - init
        - settings # 配置文件
        - url # URL對應關系
        - wsgi # 遵循WSIG規范,uwsgi + nginx
      - manage.py # 管理Django程序:

   

更改項目的IP及端口號:

 

 

 

上面我們說了,每個業務線創建一個app目錄,那么下面我們了解一下app目錄的作用

 

業務線目錄介紹:

  app:
    migrations      數據修改表結構(記錄數據庫表結構操作,類似於日志)
    admin Django  為我們提供的后台管理
    apps         配置當前app
    models ORM,    寫指定的類 通過命令可以創建數據庫結構  (數據庫操作在這里)
    tests        單元測試        (tests故名思議就是測試)
    views               業務代碼        (這里就是我們app里面所有功能實現的地方)

 

 

上面我們說了,創建django項目(工程)和app(業務線),但是我們每個項目的html文件和css樣式文件及jquery文件放哪呢,下面我們來看。

例如我們要做這樣一個網站:

 

  1、首先用戶打開網頁的時候會向django服務發出請求,去urls.py里面查找有沒有:

我們需要在項目里面的urls里查看有沒有這個后綴的html文件。

2、然后這個頁面肯定是一個app的界面,我們需要在這里導入一下app程序目錄。

這個目錄在哪里呢,我們去app里面找views這個文件。

 

   我們讓用戶發送請求的時候給用戶返回一個HOME,所以這里需要做兩件事,一是導入HttpResponse模塊,然后寫一個方法,讓它給用戶返回一個HOME,注意看,上面urls里面寫的是127.0.0.1/home的時候的這個home就是urls里面前面的home,后面寫的是這個方法在哪里,

注意看,是在views下的home方法里,所以這里就告訴程序如果用戶方法127.0.0.1/home時候,去views下的home方法里去找要給用戶返回的信息。這里我們給用戶直接返回了一個HOME,當然這里也可以返回html文件,但是這么寫不規范。

 

  那會有人會說,我給用戶要返回html內容,一並肯定還有CSS樣式和jquery文件。那這么弄呢,下面我們來看:

  這里我們必須建立一個static目錄和一個templates目錄。

  

  static里面存放CSS樣式和jquery文件。

  templates里面我們方法html文件。

  那又有人會問了,我直接在app里面寫html和css及jquery不行嗎?我暫時只能告訴你NO。

  下面我們去告訴程序,我的這3個文件都在哪。

  上面我們說了項目生成后會有一個setting.py文件,這個文件是做配置的,對,我們現在就用到了它。

  

  一般用pycharm生成的項目,這里自動回有,但是用命令行生成的項目,有時候可能跟版本有關系,所以這里必須要檢查,沒有就添加。找到了靜態文件的路徑,那還有CSS和jquery呢,下面我們來看。

  

  上面這個圖還是在setting.py里面配置,告訴程序我的CSS和jquery在哪。都告訴了,那我們還缺個html文件。

html文件:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <link rel="stylesheet" href="/static/commons.css" />
</head>
<body style="background-color: #eeeeee">
    <form action="login" method="post">
        <p>
            <label for="username">用戶名:</label>
            <input id="username" type="text">
        </p>
        <p>
            <label for="userpwd">密碼:</label>
            <input id="userpwd" type="text">
            <input type="submit" value="提交">
        </p>
    </form>
    <script src="/static/jquery.min.js"></script>
</body>
</html>
View Code

 

 CSS樣式:

准備齊活了嗎?NO,用戶訪問的時候還是會先去urls.py里面查,那里也需要添加。

  只告訴程序有127.0.0.1/login這個url可不行,我們得讓django把我們上面寫的頁面返回給用戶。

  這里我們需要導入django.shortcuts下的render

 

  不知道你發現了沒,就這么把login.html發送給了用戶,程序怎么知道login.html在哪里嗎,回答是當然知道。上面我們在項目的setting.py文件里面已經告訴了django程序,我所有的html文件都在templates里面。所以程序肯定能找到。

   效果:

  

  

  我必須能瞎點擊,我點擊一下提交(后台我沒有做任何的判斷)

  

  我擦,這是怎么鬼,聽老師說以后講,這叫跨站偽造。先不管我就不想看到它,怎么辦呢。我們還得去setting.py文件里面設置。

  注釋掉這行即可。

  

  現在就使勁點擊提交,提交到天荒地老也不會有任何返回。

  但是你要是寫點東西進去往后台提交,后台也能收的到,看看后台提醒我們什么了,每條信息都是一條記錄。

  

 

   下面我們來寫一個基本用戶登錄驗證:

  

  我們在提交的下面加一個span標簽,當用戶輸入密碼錯誤的時候返回信息。

  首先,我們在html中已經設置了,使用POST的方式提交表單,所以這里需要加判斷,if用戶用POST方式提交方式后,獲取用戶名和密碼(注意表單中name的名字一定要和html中的name一致)

  然后,獲取到了用戶名和密碼后跳轉到百度頁面。

  最后,返回錯誤信息給用戶:

    我們在html中使用了{{error_msg}}方法:

      首先,第一次用戶獲取html文件時候后台我們給error_msg設置了一個error_msg等於空的(所以不顯示),有人說你里面不是寫了內容是“用戶名或密碼錯誤”嗎?答案是No.用戶獲取html頁面時候是以GET方式獲取並沒有走if判斷,所以error_msg為空。(刷新頁面都是以GET方式獲取數據的)

      然后,我們在html中設置了以POST方式提交表單,所以這里當用戶點擊提交按鈕的時候肯定會走if條件判斷。當用戶名正確就直接跳轉到百度首頁,否則,賦值給error_msg=‘用戶名或密碼錯誤’,最后return時候會讓html中的error_msg就等於error_msg這個變量的值。所以提示用戶名或密碼錯誤!

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM