Python下有許多款不同的 Web 框架,Django是重量級選手中最有代表性的一位,許多成功的網站和APP都基於Django。Django採用了MVT的框架模式,即模型M,視圖V和模版T。它最初是被開發來用於管理一些以新聞內容為主的網站的,即是CMS(內容管理系統)軟體。
Model(模型):負責業務對象與資料庫的對象(ORM)
Template(模版):負責如何把頁面展示給用戶
View(視圖):負責業務邏輯,並在適當的時候調用Model和Template
此外,Django還有一個urls分發器,它的作用是將一個個URL的頁面請求分發給不同的view處理,view再調用相應的Model和Template。
1、安裝django
pip3 install django
2、創建django工程
# 創建Django工程
django-admin startproject 工程名
# 運行Django功能
python manage.py runserver 127.0.0.1:8001
#創建app
python manage.py startapp app名
3、配置模板路徑
project.settings裏(用pycharm創建默認就是templates)
TEMPLATES = [
{
BACKEND: django.template.backends.django.DjangoTemplates,
DIRS: [os.path.join(BASE_DIR, templates)],
APP_DIRS: True,
OPTIONS: {
context_processors: [
django.template.context_processors.debug,
django.template.context_processors.request,
django.contrib.auth.context_processors.auth,
django.contrib.messages.context_processors.messages,
],
},
]
4、靜態目錄的配置
project.settings裏
STATIC_URL = /static/
STATICFILES_DIRS = (
os.path.join(BASE_DIR,"static"),
)
5、註冊app
INSTALLED_APPS = [
django.contrib.admin,
django.contrib.auth,
django.contrib.contenttypes,
django.contrib.sessions,
django.contrib.messages,
django.contrib.staticfiles,
app01,
6、創建資料庫
資料庫的創建:
project.app.models裏
from django.db import models
# app01_userinfo
class UserInfo(models.Model):
# id列,自增,主鍵
# 用戶名列,字元串類型,指定長度
username = models.CharField(max_length=32)
password = models.CharField(max_length=64)
7、執行命令
python manage.py makemigrations
python manage.py migrate
8、運行應用
進入項目所在目錄
python manage.py runserver 8000
Django接默使用SQLite3,打開setting.py可以看到資料庫部分的配置如下:
DATABASES = { default: { ENGINE: django.db.backends.sqlite3, NAME: os.path.join(BASE_DIR, db.sqlite3), } }
Django使用MySQL資料庫
1、修改為pymysql,在project同名文件夾下的__init__文件中添加如下代碼即可:
import pymysql
pymysql.install_as_MySQLdb()
2、django連接MySQL需要pymysql模塊:
pip install pymysql
3 更改項目setting.py中對資料庫的配置為:
DATABASES = { default: { ENGINE: django.db.backends.mysql, NAME: test, USER: username, PASSWORD: passwd, HOST: localhost, PORT: 3306 } }
4 最後通過python manage.py migrate命令,Django會在資料庫中自動創建相應的表。
推薦閱讀: