day62 2018-06-12css
1. 內容回顧html
1. socketpython
瀏覽器: socket客戶端mysql
服務器: socket服務端web
2. HTTP協議:規定了一個收發消息的格式sql
3. 消息分類數據庫
請求(request):瀏覽器向服務端發送的消息django
GET /index/ HTTP/1.1\r\n瀏覽器
k1:v1\r\n服務器
...\r\n
\r\n
請求體
響應(response):
HTTP/1.1 200 OK\r\n
k1:v1\r\n
...\r\n
\r\n
響應體 --> 瀏覽器顯示的那部份內容
2. Python Web框架分類
功能分類:
a: 收發消息相關(socket)
b: 根據不用的URL執行不一樣的函數(業務邏輯相關的)
c: 實現動態網頁(字符串的替換)
Web框架分類:
1. 本身實現b,c,使用第三方的a --> Django
2. 本身實現b,使用第三方的a和c --> Flask
3. 本身實現a\b\c --> Tornado
Django是一個大而全的web框架。
3. 兩個模塊
web服務器程序 <--WSGI協議--> web應用程序
1. wsgiref
Django開發環境使用的就是wsgiref模塊
2. jinja2(Flask)
渲染HTML頁面,其實就是實現字符串的替換。
4. Django
1. Django安裝
2. 新建Django項目並啓動
3. 三件套
4. templates的配置
5. 靜態文件的配置
2. 今日內容
1. 登陸功能的實現
1. form表單提交數據的注意事項:
1. 是form不是from,必需要有method和action
2. 全部獲取用戶輸入的表單標籤要放在form表單裏面,表單標籤必需要有name屬性
3. form表單必需要有submit按鈕
2. GET和POST
何時用GET:
向服務端請求一個網頁的時候
搜索引擎檢索時
何時用POST:
使用表單向服務器提交數據時
3. request.method --> 獲取的是你請求的方法(GET/POST...)必須是大寫!!!
4. request.POST --> 獲取POST提交過來的所有數據(字典)
5. redirect --> 跳轉到指定頁面!!!
基礎必會三件套:
1. HttpResponse("OK")
2. render(request, "login.html")
3. redirect("URL")
6. app
project (學校)
- app (學院)
建立APP:
python3 manage.py startapp app01
建立好APP,記得告訴Django, 我有這個app
在settings.py中,
# 安裝的app都有哪一些
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app01',
# 'app01.apps.App01Config',
]
2. ORM(對象關係映射)
1. pymysql
import pymysql
conn = pymysql.connect(
host="127.0.0.1",
port=3306,
user="root",
password="123",
database="day62",
charset="utf8"
)
cursor = conn.cursor()
cursor.execute("slect * from user;")
ret = cursor.fetchall()
2. 咱們寫原生css和用jQuery
document.getElementById(id)
$("#id")
數據表 類
數據行 實例對象
字段 屬性
代碼操做數據庫的方式;
直接執行SQL
優勢:執行效率高
缺點:開發效率低
按照特定的語法寫,翻譯成SQL語句再去執行
優勢:開發效率高
缺點:執行效率低,你會忘記SQL語句
ORM:
sqlAlchemy Flask裏面也有一個orm就是sqlAlchemy
ORM和原生的SQL語句,根據具體的應用場景自行取捨。
1. 在Django項目的settings.py文件中,配置數據庫鏈接信息:
Django裏面的ORM的使用:
1. 告訴Django鏈接那個數據庫
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'day62',
'HOST': '127.0.0.1',
'PORT': 3306,
'USER': 'root',
'PASSWORD': '123',
}
}
2. 告訴Django怎麼鏈接
Django默認使用的是 MySQLdb模塊 鏈接數據庫
告訴Django用pymysql這個模塊去鏈接MySQL
在settings.py同目錄下的__init__.py文件中,指定使用pymysql模塊代替MySQLdb
import pymysql
pymysql.install_as_MySQLdb()
3. 在app/models.py文件中定義類
必定要繼承models.Model
4. 執行建立表的操做
1. python3 manage.py makemigrations --> 將models.py的修改登記到小本本上
2. python3 manage.py migrate --> 將修改翻譯成SQL語句,去數據庫執行
先建立一個django項目
3. 圖書管理系統
1. 表結構設計
1. 出版社
2. 書
3. 做者