1. 程式人生 > >【Python實戰】Django建站筆記

【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開始Tornado0.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