【Python實戰】Django建站筆記
前一段時間,用Django搭建一個報表分析的網站;藉此正好整理一下筆記。
1. 安裝
python有包管理工具pip,直接cd Python27/Scripts
,輸入
pip install django
# install by version
pip install --upgrade Django==<version>
安裝完成後,python -c "import django; print(django.get_version())"
,若能打印出Django的版本資訊,即說明安裝成功。一般地,Django安裝在Python27/Lib/site-package/django
目錄。
2. Django介紹
專案
Django的架構是MTV(Model-Template-View)。輸入命令
python <path>/Python27/Lib/site-packages/django/bin/django-admin.py startproject mysite
建立mysite的Django專案,專案的檔案目錄如下:
mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
wsgi.py
- 最外層的mysite目錄包含了整個專案,與Django沒有半毛錢的直接關係,可改名。
- manage.py提供對專案的命令列(command-line)操作,比如:python manage.py runserver開啟服務,預設埠號為8000(若開啟埠號為8888,則python manage.py runserver 8888)。
- 內層的mysite資料夾是python package,與專案名相對應。
__init__.py
為空檔案,表示mysite是一個package。- settings.py為專案的配置檔案。
- wsgi.py為WSGI-compatible web servers。
app
輸入python manage.py startapp polls
,為專案建立了Polls app,檔案目錄結構如下:
polls/
__init__.py
admin.py
apps.py
migrations/
__init__.py
models.py
tests.py
views.py
app定義網站內容view與model層,view.py定義網站資料的獲取,而網頁格式規範是在HTML Template中所定義的。比如,在source.html中定義網頁:
{% extends "base.html" %}
{% block main %}
<table class="info" cellspacing="0" width="100%">
<thead>...</thead>
<tbody>
<tr>
<td>{{firstWeekDay}}</td>
</tr>
</tbody>
</table>
通過view層向html注入資料(通過context給HTML中定義變數賦值):
# views.py
from django.shortcuts import render_to_response
def source(request):
context = {}
context.update(firstWeekDay=fourWeek[0])
return render_to_response('source.html', context)
上面通過命令建專案的方式可能過於繁瑣,PyCharm是IDE中不錯一個選擇,可用來快速構建Django專案。
3. 實戰
迴圈注入
Django支援注入資料的格式為迭代集合如tuple、list等,用for迴圈依次取出:
<!-- list -->
<tbody>
<tr>
<td>{{firstWeekDay}}</td>
{% for pv in firstWeekPv %}
<td>{{pv}}</td>
{% endfor %}
</tr>
</tbody>
<!-- list of tuple -->
<tbody>
{% for ad in adParent %}
<tr>
<td>{{ad.0}}</td>
<td>{{ad.1}}</td>
<td>{{ad.2}}</td>
<td>{{ad.3}}</td>
</tr>
{% endfor %}
</tbdoy>
靜態匯入
Django同時支援匯入靜態css、js檔案等,建議使用絕對路徑作為root;這些配置資訊須在settings.py中新增:
STATIC_ROOT = '<path>/to/static'
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.7/howto/static-files/
STATIC_URL = '/static/'
# Additional locations of static files
STATICFILES_DIRS = (
# Put strings here, like "/home/html/static" or "C:/www/django/static".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
('css', os.path.join(STATIC_ROOT, 'css').replace('\\', '/')),
('js', os.path.join(STATIC_ROOT, 'js').replace('\\', '/')),
('images', os.path.join(STATIC_ROOT, 'images').replace('\\', '/'))
)
如此,可以在HTML中自由地匯入相對路徑了:
<link rel="stylesheet" type="text/css" href="/static/css/style.css"/>
<script type="text/javascript" src="/static/js/jquery-1.11.3.min.js"></script>
<script type="text/javascript" src="/static/js/jquery.dataTables.min.js"></script>
相關推薦
【Python實戰】Django建站筆記
前一段時間,用Django搭建一個報表分析的網站;藉此正好整理一下筆記。 1. 安裝 python有包管理工具pip,直接cd Python27/Scripts,輸入 pip install django # install by version pip install --upgrade Django==
【Python實戰】用Scrapyd把Scrapy爬蟲一步一步部署到騰訊雲
將我們的爬蟲部署到騰訊雲伺服器上面。廢話不多說,我們就來實戰操作吧。 這裡選擇什麼雲服務都是可以的,阿里雲,AWS,騰訊雲,其他雲都是沒有問題的。部署方法基本一樣,這裡為了方便,所以筆者選擇了騰訊雲來做講解。 既然我們選擇了騰訊雲,首先去騰訊雲的官網,註冊登入一下。 點選複製https:
【Python實戰】機型自動化標註(搜狗爬蟲實現)
1. 引言 從安卓手機收集上來的機型大都為這樣: mi|5 mi|4c mi 4c 2014022 kiw-al10 nem-tl00h 收集的機型大都雜亂無章,不便於做統計分析。因此,標註顯得尤為重要。 中關村線上有對國內大部分手機的介紹情況,包括手機機型nem-tl00h及其對應的常見名稱榮耀暢玩5C
【Python實戰】Scrapy豌豆莢應用市場爬蟲
對於給定的大量APP,如何爬取與之對應的(應用市場)分類、描述的資訊?且看下面分解。 1. 頁面分析 當我們在豌豆莢首頁搜尋框輸入微信後,會跳轉到搜尋結果的頁面,其url為http://www.wandoujia.com/search?key=%微信。搜尋結果一般是按相關性排序的;所以,我們認為第一條搜尋結果
【Python實戰】Pandas:讓你像寫SQL一樣做資料分析(二)
1. 引言 前一篇介紹了Pandas實現簡單的SQL操作,本篇中將主要介紹一些相對複雜一點的操作。為了方便後面實操,先給出一份簡化版的裝置統計資料: 0 android NLL 387546520 2099457911 0 ios NLL 52877990 916421755 1 and
【Python實戰】Pandas:讓你像寫SQL一樣做資料分析(一)
1. 引言 Pandas是一個開源的Python資料分析庫。Pandas把結構化資料分為了三類: Series,1維序列,可視作為沒有column名的、只有一個column的DataFrame; DataFrame,同Spark SQL中的DataFrame一樣,其概念來自於R語言,為多column並sch
【從0開始Tornado建站】0.9版本號python站點代碼開源--持續更新中
分享 body clas .com tis https -m SM 。。 ? ? ? ? 從5月份開始【從0開始Tornado建站】這個專欄,開始一點一點把這個分類
【python安裝】Windows上安裝和創建python開發環境
path環境變量 -s cme iat img mba 增加 應用 jni 1. 在 windows10 上安裝python開發環境 Linux和Mac OS都自帶python環境,但是Windows沒有,需要自行安裝。 第1步:訪問 python官網,下載Windows
【Mac系統 + Python + Django】之開發一個釋出會系統【Django模型(二)】 【Mac系統 + Mysql】之安裝Mysql資料庫 【Python + Mysql】之用pymysql庫連線Mysql資料庫並進行增刪改查操作
上一部分給大家介紹Django的檢視。 接下來繼續來了解Django框架,來看第二部分,此部分是對資料庫的操作。 目錄: 一、設計系統表 二、admin後臺管理 三、基本資料訪問(SQLite資料庫) 四、Django配置MySQL &
【從0開始Tornado建站】顯示全部注冊使用者
顯示注冊使用者的前臺主要程式碼例如以下: {%block content%} <ul> {%for i in users%} <li><a href='/user/{{i[1]}}
【Python入門】Windows(cmd)下python和pip的安裝教程筆記
安裝python及配置環境變數 ================================================================================ 1.先在官網下載python的安裝包,建議下載python3.0以上版本(安裝路徑一定得記得,需要
【專案實戰】:python:MongoDB資料庫的操作及練習
python:MongoDB資料庫的操作及練習 import pymongo class MongodbConn(object): def __init__(self): self.CONN = pymongo.MongoClient("mongodb:/
【插件分享】 OurPhp建站系統如何開發驗證碼短信
博文 容易 https 短信接口 版權 短信平臺 自己 針對 ike 在互億無線短信平臺找到一個插件,在這邊分享一下,有需要可以了解,比自己開發要容易很多哦。http://www.ihuyi.com/ 插件說明本插件系互億無線針對OURSHOP1.7.6短信插件開發,插件內
【python基礎】常用的內建函式 python基礎之內建函式
python基礎之內建函式 參考: http://www.runoob.com/python/python-built-in-functions.html -zip() zip函式接受任意多個(包括0個和1個)序列作為引數,返回一個tuple列表 例項1: x = [1,
【專案實戰】:python:寫檔案個性化設定模組Python_Xlwt練習
python:寫檔案個性化設定模組Python_Xlwt練習 # -*- coding: utf-8 -*- """ Created on Sun Aug 5 22:52:22 2018 @author: A3 """ # ================
【專案實戰】:Python :視訊網站資料清洗整理和結論研究
視訊網站資料清洗整理和結論研究 要求: 1、資料清洗 - 去除空值 要求:建立函式 提示:fillna方法填充缺失資料,注意inplace引數 2、資料清洗 - 時間標籤轉化 要求: ① 將時間欄
【Python模組】sqlalchemy orm模組--基礎(連線資料庫,建表,增刪改查)
SQLAlchemy是Python程式語言下的一款ORM框架,該框架建立在資料庫API之上,使用關係物件對映進行資料庫操作,簡言之便是:將物件轉換成SQL,然後使用資料庫API執行SQL並獲取執行結果。 安裝: pip3 install SQLAlchemy 版本檢查
【滲透實戰】waf配置不當,某企業的xss跨站漏洞
/禁止轉載 原作者QQ:3496925334/ ■重要細節全部打碼 ■部分細節對外開放 ●漏洞已提交,無影響廠商忽略 ●尋找注入點 開啟網頁就發現一個搜尋欄, 隨便寫一些東西,回車 搜出0條記錄,在後面加上永真判斷 ‘or’’=’ 回車,搜出2000多條記錄 ■初步判斷:教科書式的注入漏
【滲透實戰】對某招聘網旁站注入
/原作者:Kali_MG1937 QQ3496925334/ ●漏洞已提交,伺服器已修復 ■重要細節全部打碼 ■部分細節對外公佈 ●自評Rank:10 目標:■■招聘網 ▲老樣子,我先在目標網站上找注入點,不出所料的,單引號和各種關鍵字被過濾了,關鍵字可以通過大小寫敏感來繞過,單引號就不
【TensorFlow實戰】用Python實現自編碼器
程式碼: import numpy as np import sklearn.preprocessing as prep import tensorflow as tf from tensorflow.examples.tutorials.mnist impor