Day15 Web框架及Django框架

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. 主機表

相關文章
相關標籤/搜索