Django的相關知識瑣碎整理css
js:JavaScript一種直譯式腳本語言,是一種動態類型、弱類型、基於原型的語言,內置支持類型。
是一種網絡腳本語音,被普遍應用於web開發,經常使用來爲網頁添加各式各樣的動態功能爲用戶提供更加流暢美觀的瀏覽器效果。
經常使用:
1)嵌入動態文本於HTML頁面
2)對瀏覽器事件做出相應
3)讀寫HTML元素
4)數據被提交到服務器以前驗證數據
5)檢測訪客的瀏覽器信息
6)控制cookies,包括建立和修改等
7)基於Node.js技術進行服務器端編程html
<th> <td> <tr>都是用於表格單元格顯示,<table>是他們的上層標籤,他們不可以單獨使用,至關於屬性標籤。
<th>:定義表格內的表頭單元格,此單元格中的內容一般爲粗體
<tr>:表示表格中的某一行
<td>:表示表格中的某一列,須要嵌入在<tr>中
一行兩列的表示以下:
<table>
<tr>
<td> </td>
<td> </td>
</tr>
</table>
------------------------------------------------
<td>,<tr>必須放入<th>內使用
<th>爲表格標題
<caption>爲首部說明
<thead>爲表格頭部
<tbody>爲表格主體內容
<tfoot>爲表格尾部
標準表格模型
<table>
<caption></caption>
<thead>
<tr>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td></td>
</tr>
</tbody>
<tfoot>
<tr>
<td></td>
</tr>
</tfoot>
</table>
在html中,<%**********%>裏面能夠寫程序語音
WSGI:python服務器的網關接口
ORM:對象關係映射,解決面向對象與關係數據庫存在的互不匹配的現象
通常的web框架:瀏覽器->WSGI->路由系統->業務處理邏輯->數據庫與模板耦合--->1):static文件包括HTML,CSS,JS等;2)ORM數據庫前端
MVC架構:
Model:定義數據庫的相關內容,通常放在models.py文件中
View:定義HTML等靜態網頁文件相關,即html、css、js等前端的東西
Controller:定義業務邏輯相關,主要代碼python
Django典型的業務流程:瀏覽器請求<-->WSGI-->URLs-->Views-->1)models(ORM,數據庫);2)Templates(Static)
Django學習的內容:
1)目錄結構規範
2)URLs路由方式
3)Settings配置
4)ORM操做
5)模板渲染
6)otherjquery
Django項目的目錄結構:
1)文件夾-與項目名同名的配置文件
2)templates:存放html文件,也存放T文件
3)manage.py:項目管理文件
與項目名同名的文件夾中存放的文件有:
1)__init__.py
2)setting.py:主配置文件
3)urls.py:url路由文件
4)wsgi.py:網絡通訊接口web
每一個Django項目中含有多個app,至關與大型系統中的子系統、子模塊、子功能,各個功能系統之間相互比較獨立,但又存在着聯繫,全部app共享項目資源。
建立app命令:python manage.py startapp XXX
urls.py路由編寫
from cmdb import views #導入對於app的views文件
urlpatterns=[
url(r'index/', views.index), #參數1:網頁搜索路徑;參數2:業務邏輯函數
]sql
views.py業務邏輯編寫
from django.shotcuts import HttpResponse #導入HttpResponse模塊
def index(request): # 封裝了用戶請求的全部內容
return HttpResponse('hello world') # 由這個類封裝起來進行返回數據庫
此時,將index這個url指向了views裏面的index()函數,它接收用戶請求,並返回字符串django
運行web服務
方法1:命令行 python manage.py runserver 127.0.0.1:8000
方法2:pycharm運行編程
僅僅返回字符串可不行,一般都是將html文件返回給用戶,那麼就須要在用戶請求的時候,訪問對應的html文件
views.py業務邏輯操做
from django.shortcuts import render
修改index中的返回函數
def index(request):
return render(request, 'index.html') # 當須要返回一個html文件時,就須要render進行包裝
要讓django知道咱們的html文件在哪裏,須要修改settings文件的內容,默認狀況下無需修改,廣泛適用
使用靜態文件:前端三大塊,html,css,js還有各類插件,他們齊全才是一個完整的頁面,在django中,通常將靜態文本存放在static目錄中。
爲了讓django找到這個目錄,依然須要對settings.py進行設置
STATIC = '/static/'
STATICFILES_DIRS=(
os.path.join(BASE_DIR, 'static'), #第一個參數是項目路徑,第二個參數是設置目錄的名字,由於是個元組,後面的逗號不能省略
)
也能夠在html文件中,引入js文件了:
<script src='/static/js/jquery-1.12.4.js'><script>
接受用戶發送的數據,用戶同url發出一個訪問請求,而後將要素齊全的html文件還給了用戶瀏覽器,但web服務器和用戶之間沒有動態交互。
設計一個表單,讓用戶輸入用戶名和密碼,提交給index這個url,服務器接收這些數據
返回動態頁面:咱們收到用戶數據後,返回給用戶的依然是靜態頁面,一般咱們會根據用戶的數據,進行處理後返回給用戶。
改造views.py文件
# 建立用戶信息列表,預約義兩個數據,返回給瀏覽器,展現給用戶
user_list = [
{'user':'jack', 'pwd':'123'},
{'user':'alice', 'pwd':'456'},
]
def index(request):
if request.method == 'POST':
username = request.POST.get('username', None)
password = request.POST.get('password', None)
temp = {'user':username, 'pwd':password}
user_list.append(temp)
return render(request, 'index.html', {'data':user_list})
# render方法接收第三個參數是後臺返回給瀏覽器的數據,它是一個字典,data是你自定義的指針名字,他會被對應的html文檔引用即本文的index.html
此時,框架已經基本成型,就差數據了用戶存儲數據,自帶ORM框架操做數據庫,並帶有輕量級的sqlite3數據庫。
1)註冊:在settings中註冊你的app,不註冊它,數據庫不知道給哪一個app建立表
2)在settings中,配置數據庫相關的參數,若是使用自帶的sqlite,不要修改
3)編輯models.py文件,也是就MTV中的V,操做數據庫相關
from django.db import models
#參數中,繼承這個類,固定寫法
class UserInfo(models.Model):
# 建立2個字段,最大長度32,類型是char
user = models.CharField(max_length=32)
pwd = models.CharField(max_length=32)
4)經過終端建立數據庫的表
python manage.py makemigrations
python manage.py migrate
5)修改views.py的業務邏輯
from cmdb import models
def index(request): if request.method == 'POST': username = request.POST.get('username', None) password = request.POST.get('password', None) #從用戶那裏得到數據保存到數據庫 models.UserInfo.objects.create(user=username, pwd=password) # 從數據庫中讀取全部的數據 user_list = models.UserInfo.objects.all() return render(request, 'index.html', {'data':user_list})