day15 2018-03-31html
1. 上午重在理解python
1. 用戶瀏覽器 --> socket 客戶端
4. 發送消息給服務端
7. 收到回覆消息
斷開
2. 博客園的server --> socket 服務端
1. 啓動服務,
2. 綁定IP和端口,等待鏈接
3. 監聽
while 1:
5. 服務端要接收消息
6. 返回消息
8。 斷開
PUT|xxx.avi|1024
瀏覽器和web服務端 互相通訊 要以來一個統一的規則(標準)
本質上就是互發的消息要有一個格式的要求
HTTP協議
瀏覽器往服務端發的消息叫:請求(request)
請求行 GET /index/ HTTP/1.1
請求頭 k1:v1
\r\n
請求體
服務端回覆給瀏覽器的消息叫:響應(response)
響應行 HTTP/1.1 200 OK\r\n (規定格式)
響應頭 Content-Type: text/html; charset=utf-8\r\n
k2:v2\r\n
...
\r\n
響應體 咱們在瀏覽器上看到的內容
總結上午講解內容:
a. 接收瀏覽器發送的消息
b. 根據不一樣的路徑返回不一樣的內容
c. 經過字符串替換 實現 動態網頁mysql
Web服務程序與Web應用程序之間的關係以下圖:程序員
Python Web框架分類:
1. 框架自帶 a,b,c Tornado
2. 框架自帶b,c 使用第三方a Django
3. 框架自帶b,使用第三方的a和c Flask
另一個維度的分類:
1. Django --> 大而全
2. 其餘 web
Django:
1. 安裝
pip install django==1.11.9
2. 新建Django項目
1. django-admin startproject 項目名
3. Django 設置 settings.py文件中sql
設置完Django項目,裏面的.py文件的使用。數據庫
1. 註釋掉 csrf相關的那一行(大概是46行!)
2. 配置html文件相關
3. 配置靜態文件相關 /static/
Django裏面的url.py指的是,url與函數對應的關係
4. 基礎必備的三件套
1. HttpResponse --> 字符串
2. render() --> HTML文件 --> 打開HTML文件而且完成字符串的替換 (包含 request html文件名 轉換字符串三個參數)
3. redirect(「/book_list/」) --> 跳轉
5. HTML頁面中form表單提交數據三個要點:
1. input必定要放在form表單裏面,而且 input 要有name屬性
2. form表單裏面觸發提交操做 必定要有submit按鈕!!! <input type="submit" value="提交">
3. 要指定form表單提交的URL(action屬性) 而且指定提交的方法(method屬性)。提交from表單須要用到postdjango
6,建立python裏面的應用APP在如今的terminal s輸入命令:python manage.py startapp app01(app名字)或者在窗口找到建立的Django目錄下輸入這個命令建立。
瀏覽器
Django中操做MySql數據庫的準備工做:app
1,建個數據庫
2,告訴Django去哪裏連數據庫
3,MYSQLdb、pymysql,告訴Django使用pymysql鏈接MySQL數據庫
import pymysql
pymysql.install_as_MySQLdb()
4,在app/models.py文件中,根據特定的語法 建立類
5,執行兩個命令
{"email": "alex@1.com", "pwd": "alexdsb"}
2. ORM 對象關係映射 SQLAlchemy
鏈接數據庫
類 --> 數據表
屬性 --> 字段
對象 --> 數據行
讓程序員不用本身寫SQL語句,而是利用程序自動翻譯的SQL語句
$("#i1") document.getElementById("i1")
特殊的語法 SQL語句
ORM不能操做數據庫,因此纔要本身建數據庫!!!
Django中操做MySQL數據庫的準備工做:
1. 本身用SQL語句建個數據庫 --> create database s20;
2. 告訴Django去哪兒連數據庫
在settings.py文件中設置:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 告訴Django鏈接數據庫的類型
'NAME': 's20',
'HOST': "127.0.0.1",
'PORT': 3306, # 不要加引號
'USER': "root",
"PASSWORD": "123456", # 要加引號
}
}
3. MySQLdb、pymysql,告訴Django使用pymysql鏈接MySQL數據庫
project/__init__.py文件中:
import pymysql
pymysql.install_as_MySQLdb()
4. 在app/models.py文件中,根據特定的語法 建立類
class Book(models.Model):
# 定義一個自增的ID主鍵
id = models.AutoField(primary_key=True)
# 定義一個最大長度爲32的varchar字段
title = models.CharField(max_length=32)
5. 執行兩個命令
1. python manage.py makemigrations --> 用小本本記錄 app/models.py文件的任何改動
2. python manage.py migrate --> 把上面的改動翻譯成SQL語句,而後去數據庫中執行
1. 操做數據表
2. 操做數據行
1. 增
Book.objects.create(title="書名")
2. 刪
models.Book.objects.get(id=2).delete()
3. 改
obj = models.Book.objects.get(id=1)
obj.title = "番茄物語 第二版"
obj.save() --> 把改動同步到數據庫中!!!
4. 查
查單個:
obj = models.Book.objects.get(id=1)
查全部:
objs = models.Book.objects.all()
書管理系統:
1. /book_list/ 在頁面展現全部的書
ORM外鍵關聯
主機表 主機組表
id name ip memo group id name
3. 做業
1. 把課上咱們寫的書管理系統,用Bootstrp寫完
2. 把外鍵關聯的增刪改查本身寫一遍!
3. 做業 1. 主機表