Django入門
第一步:安裝Django
pip install Django
pip show Django #查看版本
第二步:執行2條命令,創建網站文件夾和后臺應用文件夾
django-admin startproject mysite #mysite是你的網站名
python manage.py startapp myapp #myapp是后臺應用程序名
第三步:修改后臺應用文件夾view.py中的函數,就是瀏覽器向我們的網站發出請求時, 后臺應用程序執行的函數 (代碼中的9至28行)
修改網站文件夾中的urls.py文件,導入上一步的后臺應用函數(代碼中的18,21行)
先要從后臺應用中導入views.py文件
再把views.sample_analyse添加進去
修改站文件夾中的settings.py文件,添加允許訪問的主機和已安裝的后臺應用(代碼中的28、41行)
'*' 表示允許所有IP地址的計算機訪問,要是僅允許本機訪問是'127.0.0.1',這時候其它IP地址可以連接到你的網站,只是網站打開提示出錯。
'testapp' 就是我們后臺的應用
第四步:運行Django,切到網站文件夾
python manage.py runserver 0.0.0.0:8080
瀏覽器請求(使用GET請求):http://127.0.0.1:8080/sample_analyse/?sample_dir=/home/yellow&fakenet_statue=1
sample_analyse 第三步中后臺應用中添加的函數名
sample_dir、fakenet_statue 是傳遞給后臺的參數,中間用&鏈接
升級:
1、第三步中的后臺應用函數盡量不要寫很大,最終要調用其它的python代碼。比如要引入analyse.py文件中的init函數,就在后臺應用文件夾下創建一個main文件夾,把analyse.py文件放進去,使用from main import analyse引入。(main文件夾下一定要有一個叫__init__.py的空文件)
import time
from main import analyse
def sample_analyse(request):
submit_time = time.time()
if request.method == 'GET':
sample_dir = request.GET.get('sample_dir', '')
fakenet_statue = request.GET.get('fakenet_statue', '0')
if sample_dir == '' or (fakenet_statue != '0' and fakenet_statue != '1'):
return HttpResponse('Arguments error.')
else:
result = analyse.init(submit_time, sample_dir, fakenet_statue)
return HttpResponse(result)
else:
return HttpResponse('Request method error.')
2、后臺應用如何對不能同時使用的資源加鎖:比如在init函數中引入了4個模塊module1、module2、module3、module4,都要使用里面的fun函數,其中module3是不能共享的,需要加鎖。這里的辦法是創建一個文件,文件存在表示module3在使用中,文件不存在表示可用。(Django使用的并發技術可能是線程、協程、進程,也可能三者同時使用)
import time
import module1
import module2
import module3
import module4
def init(submit_time, sample_dir, fakenet_statue):
submit_time = str(submit_time)
module1.fun(submit_time)
module2.fun(submit_time)
#模塊3公用資源,加鎖處理
mutex_file = path.PATH_PWD + '/' + 'CuckooSanbox'
while True:
try:
os.mknod(mutex_file)
break
except:
print submit_time+':module3 in using.'
time.sleep(5)
print submit_time+':Enter module3.'
module3.fun(submit_time)
os.remove(mutex_file)
print submit_time+':Leave module3'
module4.fun(submit_time)
return
源代碼下載地址:https://download.csdn.net/download/singleyellow/10265343
Django中文學習網站:https://code.ziqiangxuetang.com/django/django-tutorial.html
智能推薦
Django開發入門——模板
模板系統基本知識 模版是一個文本,用于分離文檔的表現形式和內容。模板定義了占位符以及各種用于規范文檔該如何顯示個部分基本邏輯。模板通常用于產生HTML,但Django的模板也能產生任何基于文本格式的文檔。 模板介紹 作為Web框架,Django提供了模板,可以很便利的動態生成HTML 模板系統致力于表達外觀,而不是程序邏輯 模板的設計實現了業務邏輯與顯示內容的分離,一個視圖可以使用任意一個模板,一...
Django入門與實踐
Django介紹 什么是Django: Django是一個基于Python的高級web開發框架,它能夠讓開發人員進行高效且快速的開發。高度集成(不同重復造輪子),免費且開源。 搭建環境: 安裝Python,Python官網下載安裝包安裝即可,過程略。 安裝Django: 或者下載源碼tar包,進入解壓目錄執行python setup.py install 創建項目: 在Windows命令行下(在L...
django入門01
1.首先安裝django 2.創建項目 從命令行cd到您要存儲代碼的目錄,然后運行以下命令: 文件解釋: 1.外部第一個myweb/ 根目錄只是一個項目的容器,是項目的主目錄文件,隨便命名 2.manage.py 一個命令行實用程序,可以讓運行該文件的方式與Django項目進行交互 3.內部的第二個myweb/目錄是項目的實際Python包,包括默認的幾個文件 myweb/init.py 一個空的...
Django-01-入門
Django-01-入門 一、Django安裝 首先是安裝Django的框架,Django實際上就是一些包裝好的python庫,方便我們開發網站,直接使用pip命令安裝就行(前提是你已經安裝好了python)。 我們要知道我們使用的python的版本,找到對應的Django版本進行安裝,如下圖所示。 可以使用下面命令查看python版本(我的是python版本3.6) 然后使用使用管理員身份打開命...
猜你喜歡
freemarker + ItextRender 根據模板生成PDF文件
1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...
電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!
Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...
requests實現全自動PPT模板
http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...
Linux C系統編程-線程互斥鎖(四)
互斥鎖 互斥鎖也是屬于線程之間處理同步互斥方式,有上鎖/解鎖兩種狀態。 互斥鎖函數接口 1)初始化互斥鎖 pthread_mutex_init() man 3 pthread_mutex_init (找不到的情況下首先 sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev) 動態初始化 int pthread_...