css
# 在指定解釋器環境下安裝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
# 選擇有django環境的解釋器建立項目
# Tools -> Run manage.py Task... -> startapp app_name
# 正常運行項目來啓動項目, 並非執行某一個py文件linux
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")
]
處理模板衝突
# 在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便可
def login(request):
if request.method == "GET":
# 得到到則返回一個值, 獲取不到返回None
request.GET.get('usr')
# 得到到則返回一個值, 獲取不到返回默認值PWD
request.GET.get('pwd', 'PWD')
# 得到到則返回的多個值
request.GET.getlist('stus')
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() # 一條用戶數據
方法一:
一、進入項目目錄下,運行下面程序:
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
注意括號中的狀態值,由Attached
變成Detached
殺死進程
kill -9 26134