Model Template View
數(shù)據(jù)庫(kù) 模版文件 業(yè)務(wù)處理創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),商丘企業(yè)網(wǎng)站建設(shè),商丘品牌網(wǎng)站建設(shè),網(wǎng)站定制,商丘網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,商丘網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
了解Django框架,功能齊全
安裝Django
pip3 django
配置Django
1.配置Django環(huán)境變量
D:\Program files\python37
D:\Program files\python37\Lib\site-packages\django\bin
D:\Program files\python37\Scripts
2.驗(yàn)證Django安裝配置
在python終端輸入如下命令
import django
django.get_version();
3.Django工程管理
創(chuàng)建工程
django-admin.exe startproject mysite
Django目錄結(jié)構(gòu)
mySites
mySites 對(duì)整個(gè)程序進(jìn)行配置
__init__.py
setting.py #配置文件
urls.py #URL對(duì)應(yīng)關(guān)系
wsgi.py #wsgi 遵循WSGI規(guī)范, 以后線上配置uwsgi+nginx
manage.py #管理Django程序:
-python manage.py
-python mangage.py startapp xx
-python manage.py makemigrations
-python manage.py migrate
運(yùn)行django工程
python manage.py runserver
python manage.py runserver 127.0.0.1:8001
在工程目錄下創(chuàng)建app
cd projectName
python manage.py startapp CMDB
可以將不同的功能模塊創(chuàng)建成不同的APP
CMDDB APP目錄結(jié)構(gòu)
-d migrations 數(shù)據(jù)庫(kù)修改表結(jié)構(gòu)操作記錄
-__init__.py python2中每個(gè)文件夾都有這個(gè)文件,有這個(gè)文件則認(rèn)為是Packages,python3則可有可無(wú)。
- admin.py django為我們提供的后臺(tái)管理
- apps.py 表示配置當(dāng)前apps
- models.py ORM,寫指定的類,通過(guò)命令創(chuàng)建數(shù)據(jù)庫(kù)表結(jié)構(gòu)
- views.py 與cmddb相關(guān)的所有業(yè)務(wù)邏輯代碼
- tests.py 做單元測(cè)試
配置模板文件路徑
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',
],
},
},
]
配置靜態(tài)文件路徑
django2.14引用外部css、js、圖片需要進(jìn)行設(shè)置后方可使用
1.在工程目錄下創(chuàng)建存放css、js、圖片的目錄static;
2.設(shè)置django
在setting.py中INSTALL_APPS中添加這行'django.contrib.staticfiles'
如下所示
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
3.在setting.py末尾改成如下
#Static files (CSS, JavaScript, Images)
#https://docs.djangoproject.com/en/2.1/howto/static-files/
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
]
4.html文件引用如下
{%load staticfiles%}
1.錯(cuò)誤現(xiàn)象
Forbidden (403)
CSRF verification failed. Request aborted.
修改setting:
將此行注釋
'django.middleware.csrf.CsrfViewMiddleware',
臨時(shí)解決方法
2.錯(cuò)誤現(xiàn)象
UnboundLocalError at /login/
Exception Value:
local variable 'error_msg' referenced before assignment
本地變量error_msg未定義就引用了,此處報(bào)錯(cuò)原因是error_msg定義的位置不對(duì),即其作用域不正確:error_msg定義的作用域在return語(yǔ)句內(nèi)部不能被引用
django默認(rèn)數(shù)據(jù)引擎sqlite3,要使用mysql修改配置
1.準(zhǔn)備mysql數(shù)據(jù)庫(kù)名:DjangoDB,創(chuàng)建語(yǔ)句并授權(quán)
create database DjangoDB;
grant all on DjangoDB.* to django@'172.16.200.%' identified by 'centos';
flush privileges;
2.在setting.py文件配置Django數(shù)據(jù)引擎為mysql
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'HOST': '172.16.200.3',
'NAME': 'DjangoDB',
'USER': 'django',
'PASSWORD': 'centos',
'PORT': '3306',
}
}
3.安裝django數(shù)據(jù)庫(kù)驅(qū)動(dòng)pymysql
pip3 pymysql
在django工程同名文件夾的init.py中添加
import pymysql
pymysql.install_as_MySQLdb()
4.注冊(cè)app
將app名字添加到setting.py中
如下
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'HostDB',
]
否則命令不能識(shí)別到aap中models.py
5.生成表結(jié)構(gòu)
python manage.py makemigrations appName
python manage.py migrate appName