Python Day15 Django 01

框架分類

a. 接收瀏覽器發送的消息
b. 根據不同的路徑返回不同的內容
c. 通過字符串替換 實現 動態網頁

Python Web框架分類:

  1. 框架自帶 a,b,c Tornado
  2. 框架自帶b,c 使用第三方a Django
  3. 框架自帶b,使用第三方的a和c Flask

另外一個維度的分類:

  1. Django --> 大而全
  2. 其他

Django安裝

  1. 安裝

    pip install django==1.11.9

  2. 新建Django項目

    1. django-admin startproject 項目名
  3. Django 設置 settings.py文件中

    1. 註釋掉 csrf相關的那一行(大概是46行!)
    2. 配置html文件相關
    3. 配置靜態文件相關 /static/
  4. 基礎必備的三件套

    1. HttpResponse --> 字符串
    2. render() --> HTML文件 --> 打開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屬性)
      {"email": "[email protected]", "pwd": "alexdsb"}

ORM

對象關係映射

類 ==> 數據表

屬性 ==> 字段

對象 ==> 數據行

Django中操作MySQL數據庫的準備工作

  1. 自己用SQL語句建個數據庫

    create database s20;

  2. 告訴Django去哪兒連數據庫
    在settings.py文件中設置:

    DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 's20',
        'HOST': "127.0.0.1",
        'PORT': 3306,
        'USER': "root",
        "PASSWORD": "123",
    }
    }
  3. MySQLdb、pymysql,告訴Django使用pymysql連接MySQL數據庫

project/init.py文件中:

import pymysql
pymysql.install_as_MySQLdb()
  1. 在app/models.py文件中,根據特定的語法 創建類

    class Book(models.Model):
    定義一個自增的ID主鍵
    id = models.AutoField(primary_key=True)
    定義一個最大長度爲32的varchar字段
    title = models.CharField(max_length=32)

  2. 執行兩個命令
    1. python manage.py makemigrations --> 用小本本記錄 app/models.py文件的任何改動
    2. python manage.py migrate --> 把上面的改動翻譯成SQL語句,然後去數據庫中執行

操作數據行

  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()

settings設置

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

BASE_DIR指的就是你這個Django項目存放的路徑

'DIRS': [os.path.join(BASE_DIR, 'templates')]

告訴Django 模板文件到這個文件夾下找

STATIC_URL = '/static/'

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static"),
    os.path.join(BASE_DIR, "static99"), #可以設置多個地址
]

告訴Django靜態文件所在地(CSS,JS等文件)

其中STATIC_URL = '/static/'相當於別名,指向的是下面STATICFILES_DIRS中的地址,STATICFILES_DIRS中可以設置多個地址,Django會輪訓查找裏面的內容

這樣就可以把不同的靜態文件放在不同的目錄,在模板中引用時直接加上/static/這一個名字就可以了
示例:

<link rel="stylesheet" href="/static/bootstrap/css/bootstrap.min.css">

<script src="/static/bootstrap/js/bootstrap.min.js"></script>

注意:
如果static目錄放在app中,那麼可以不寫STATICFILES_DIRS,Django會去每個項目裏找static目錄

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章