Diango 框架起步

一.命令行搭建Django項目

  • 安裝djangocss

# 在指定解釋器環境下安裝django 1.11.9
# 在真實python3環境下: pip3 install django==1.11.9
# 在虛擬環境下: 先激活虛擬環境 => pip3 install django==1.11.9

# 查看django版本: django-admin --version
# 安裝出錯: 採用管理員命令行


​虛擬環境
virtualenv

https://www.cnblogs.com/technologylife/p/6635631.html
pip install
virtualenv
mkdir myproject
pipenv --python3
pipenv install django
pipenv install --dev django #安裝在測試環境
pipenv run python manage.py runserver 0.0.0.0:8000
 
https://rootnroll.com/d/pipenv/  #在線練習網站
下載慢能夠改源
vim pipFile
url='https://mirrors.aliyun.com/pypi/simple/'

pipenv shell 進入虛擬環境
exit 退出
虛擬環境

pipenv --where #虛擬環境的路徑
pipenv --venu #虛擬環境保存的路徑
pipenv --py #虛擬環境解釋器的路徑
pipenv check 檢查漏洞
pipenv --rm 刪除虛擬環境
 
  • 建立項目html


# 先前往目標路徑
# 建立項目: django-admin startproject proj_name
  • 建立應用python


# 進入項目根目錄
# 建立應用: python3 manage.py startapp app_name
# 去項目的settings文件添加 應用名 到INSTALLED_APPS
  • 啓動服務mysql

# 在項目根目錄下: python3 manage.py runserver 127.0.0.1:8888

二.Pycharm搭建項目

# 選擇有django環境的解釋器建立項目
# Tools -> Run manage.py Task... -> startapp app_name
# 正常運行項目來啓動項目, 並非執行某一個py文件linux

 

三.項目響應請求

完成 http://127.0.0.1:8888/index 請求的處理sql

  • 在項目的urls.py中配置路由docker


# 文件: 項目下 urls.py

import app.views as app_views # 建立的app下的視圖文件
urlpatterns = [
   url(r'^admin/', admin.site.urls),
   url(r'index', app_views.index) # 配置的路由
]
  • 在具體應用下的視圖文件爲請求配置響應函數shell


# 文件: app應用下 views.py
from django.http import HttpResponse
def index(abc):
   return HttpResponse('hello django')
  • 第一個響應數據庫


# 文件: app應用下 views.py

from django.http import HttpResponse
def view_action(request):
   return HttpResponse('django response')
  • 第一個模板頁面django


from django.shortcuts import render
def view_action(request):
   return render(request, 'template_page.html')
  • 第一個重定向

from django.shortcuts import redirect
def view_action(request):
   return redirect('/重定向的路由')

SETTINGS:
STATIC_URL = '/static/'

STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static")
]
 

四.模板渲染-衝突處理

前提: 一個項目中有多個應用,每一個應用都具備相同命名的模板頁面文件, 如app與newapp都有各自的主頁index.html

  • 處理模板衝突


# 在settings.py文件中若是配置了應用名

# 在自身應用文件夾下建立templates文件,再在其中建立與應用名相同的文件夾,該應用的模板文件均可以放在該文件夾下
# eg: newApp訪問自身主頁
def index(request):
   return render(requset, 'newApp/index.html')


# 在settings.py沒有配置應用名
# 在項目templates文件下建立與應用名相同的文件夾, 該應用的模板文件均可以放在該文件夾下
# 視圖處理函數的邏輯一致

# 注: 兩種同時存在是, 項目下templates優先被訪問

五.靜態文件加載

  • 靜態文件的根路由 => 規定了加載靜態文件的起點


# settings文件下的
STATIC_URL = '/static/'
# 下方規定靜態文件能夠放入的文件夾
STATICFILES_DIRS = [
   os.path.join(BASE_DIR, 'static'),
   os.path.join(BASE_DIR, 'a'),
   os.path.join(BASE_DIR, 'b'),
]

# 直接致使模板頁面導入靜態文件起點:
# <link src="/static/index.css">

# 查找方式
# 經過/static/匹配到靜態文件的根路由 => 根路由管理着static | a | b 三個存放在項目根目錄下的文件夾 => 三個文件夾中任意一個存放着index.css便可

 

六.GET請求的數據獲取

def login(request):
if request.method == "GET":
# 得到到則返回一個值, 獲取不到返回None
request.GET.get('usr')
# 得到到則返回一個值, 獲取不到返回默認值PWD
request.GET.get('pwd', 'PWD')
# 得到到則返回的多個值
request.GET.getlist('stus')

七.POST請求的數據獲取

def login(request):
if request.method == "POST":
# 得到到則返回一個值, 獲取不到返回None
request.POST.get('usr')
# 得到到則返回一個值, 獲取不到返回默認值PWD
request.POST.get('pwd', 'PWD')
# 得到到則返回的多個值
request.POST.getlist('stus')

def login(request):

八.鏈接數據庫

import pymysql
# 鏈接數據庫
conn = pymysql.connect(host='localhost', port=3306, user='root', password='root', db='django')
# 設置遊標執行sql語句
cur = conn.cursor(pymysql.cursors.DictCursor)
# cur.execute('select * from user')
cur.execute('select * from user where usr=%s and pwd=%s', [usr, pwd])

# 獲取執行結果
# users = cur.fetchall() # 全部用戶數據
res = cur.fetchone() # 一條用戶數據

TTL

 

 linux Django後臺運行

方法一:

一、進入項目目錄下,運行下面程序:

nohup python manage.py runserver 0.0.0.0:5008 &
nohup(no hang up)用途:不掛斷的運行命令

&用途:在後臺運行

nohup /root/start.sh &
在shell中回車後提示:

[~]$ appending output to nohup.out
原程序的的標準輸出被自動改向到當前目錄下的nohup.out文件,起到了log的做用。

注意:在nohup執行成功後直接點擊關閉程序按鈕關閉終端,會斷掉該命令對應的session,致使nohup對應的進程被通知一塊兒shutdown。因此在使用nohup命令後臺運行命令以後,須要使用exit正常退出當前帳戶,這樣才能保證命令一直在後臺運行。

 方法二:這個比較高級,使用screen

一、安裝screen

yum install -y screen
二、新建一個screen

screen -S xiedi
這樣會新開一個窗口,而後執行命令便可

python manage.py runserver 0.0.0.0:9000
三、重開一個窗口,列出全部screen進程,以下

[root@docker ~]# screen -ls
There are screens on:
3029.xiedi (Attached)
四、若是想連接上這個會話,執行命令便可

screen -r 3029

 

離開screen ctrl+a+d

注意括號中的狀態值,由Attached變成Detached

殺死進程

kill -9 26134
相關文章
相關標籤/搜索