程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

快速搭建django項目

編輯:Python

Django框架的ORM簡介:

ORM ,全稱 Object Relational Mapping ,中文叫做對象關系映射,通過 ORM 我們可以通過類的方式去操作數據庫,而不用再寫原生的SQL語句。通過把表映射成類,把行作實例,把字段作為屬性, ORM 在執行對象操作的時候最終還是會把對應的操作轉換為數據庫原生語句。使用 ORM 有許多優點:

  • 易用性:使用 ORM 做數據庫的開發可以有效的減少重復SQL語句的概率,寫出來的模型也更加直觀、清晰。
  • 性能損耗小: ORM 轉換成底層數據庫操作指令確實會有一些開銷。但從實際的情況來看,這種性能損耗很少(不足5%),只要不是對性能有嚴苛的要求,綜合考慮開發效率、代碼的閱讀性,帶來的好處要遠遠大於性能損耗,而且項目越大作用越明顯。
  • 設計靈活:可以輕松的寫出復雜的查詢。
  • 可移植性: Django 封裝了底層的數據庫實現,支持多個關系數據庫引擎,包括流行的 MySQL 、 PostgreSQL 和 SQLite 。可以非常輕松的切換數據庫。

映射模型到數據庫中:

將 ORM 模型映射到數據庫中,總結起來就是以下幾步:

  1. 在 settings.py 中,配置好 DATABASES ,做好數據庫相關的配置。
  2. 在 app 中的 models.py 中定義好模型,這個模型必須繼承自 django.db.models 。
  3. 將這個 app 添加到 settings.py 的 INSTALLED_APP 中。
  4. 在命令行終端,進入到項目所在的路徑,然後執行命令 python manage.py makemigrations 來生成遷移腳本文件。
  5. 同樣在命令行中,執行命令 python manage.py migrate 來將遷移腳本文件映射到數據庫中。

1、pip安裝django項目所需要的庫

(pip install dajngo)
一般將需要的包以及版本寫入文本批量安裝,方便環境遷移
eg:

Django==1.11.15
django-celery==3.2.2
django-cors-headers==2.4.0
django-crispy-forms==1.7.2
django-filter==1.0.4
elasticsearch==6.3.1
pymongo==3.7.1
PyMySQL==0.9.2

命令

pip install -r requirement.txt

2.創建項目

創建之前先cd切換到存放項目的目錄
django-admin startproject fault # 工程項目名

  • 與項目同名的目錄,此處為fault。
  • settings.py 是項目的整體配置文件。
  • urls.py 是項目的URL配置文件。
  • wsgi.py 是項目與WSGI兼容的Web服務器入口。
  • manage.py 是項目管理文件,通過它管理項目。

3、創建子應用

python manage.py startapp core # 子應用名字

  • admin.py 文件跟網站的後台管理站點配置相關。
  • apps.py 文件用於配置當前子應用的相關信息。
  • migrations 目錄用於存放數據庫遷移歷史文件。
  • models.py 文件用戶保存數據庫模型類。
  • tests.py 文件用於開發測試用例,編寫單元測試。
  • views.py 文件用於編寫Web應用視圖。

4、配置settings.py

  1. 注冊子應用core
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'core',
]
  1. 配置host准入
ALLOWED_HOSTS = ['*']
  1. 配置mysql連接
DATABASES = {
'default': {
"ENGINE": "django.db.backends.mysql",
"NAME": "fault",
"USER": "root",
"PASSWORD": "123456",
"HOST": "172.17.161.77",
"PORT": "",
}
}

也可以寫入chaos.conf文件,然後在settings.py配置:

# mysql
CONFIG_FILE = '/etc/ptms/chaos.conf'
try:
execfile(CONFIG_FILE)
except IOError as e:
print('Skipping settings loading, no file at %s' % CONFIG_FILE)
except SyntaxError as e:
print('Invalid syntax in configuration at %s' % CONFIG_FILE)
raise e
  1. 語言和時區
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
USE_TZ = False
  1. 配置static靜態文件路徑
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')

5、同步數據庫

  1. 生成映射文件migrations
python manage.py makemigrations core(不選應用名及生成所有)
  1. 將映射文件同步到sql創建表格(新項目應用app沒新增model,也會新建django自帶的後台表)
python manage.py migrate
  1. 如果2報錯未成功,可能有歷史映射問題,可以單次生成sql建表語句,直接數據庫執行
python manage.py sqlmigrate core(子應用名) 0001

6、創建管理員賬戶管理後台

python manager.py createsuperuser

然後按照提示輸入用戶名(username),郵箱(Email),密碼(password),再次輸入密碼。

7、調試啟動項目

python manager.py runserver 0.0.0.0:8000

url.py配置了默認admin管理後台的路由

from django.conf.urls import url
from django.contrib import admin
urlpatterns = [
url(r'^api/admin/', admin.site.urls),
]

http://localhost:8080/admin
用新建的管理員賬戶,可以進入項目後台

8、可以在應用中添加簡單的函數視圖,在urls.py中納入urlpatterns即可

from django.http import HttpResponse
from django.shortcuts import render
def index(request):
"""
index視圖
:param request: 包含了請求信息的請求對象
:return: 響應對象
"""
return HttpResponse("hello the world!")
def testUpfile(request):
"""
render 渲染
"""
if request.method == "GET":
return render(request, "upload.html")

納入url路由

from django.conf.urls import url
from django.contrib import admin
from core.views import testUpfile, index
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^api/test', testUpfile),
url(r'^index', index),
]

然後按照ORM映射在app應用上開發業務需要的東西了。


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved