• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • Django教程

    一. 安裝。

        首先安裝pip

        linux下:

        yum install python-pip

        windows下:

        

    二、下載源碼安裝。

    https://www.djangoproject.com/download/


    3.1 Linux 或 Mac 下


    tar -xvzf django-1.7.6.tar.gz
    cd django-1.7.6
    (sudo) python setup.py install

    3.2 Windows 下

    直接用解壓軟件解壓,然后到命令行(XP/Win7點擊開始,在下面的那個輸入框中輸入 cmd, Win8在開始那里點右鍵,選擇命令行)

    比如在 D:\django-1.7.6\  這個文件夾下


    cd D:
    cd django-1.7.6
    python setup.py install

    什么?提示 ‘python’不是內部或外部命令,也不是可運行的程序或批處理文件。

    Linux用自帶源進行安裝

    1.1  ubuntu 下安裝 Django


    sudo apt-get install python-django -y

    1.2  Fedora 下安裝用 yum


    yum install python-django

    注意:自帶源安裝的 Django 一般版本比較舊,而用 pip 可以安裝最新的版本。

    2. 檢查是否安裝成功

    終端上輸入 python ,點擊 Enter,進行 python 環境


    >>> import django
    >>> django.VERSION
    (1, 7, 6, 'final', 0)
    >>> 
    >>> django.get_version()
    '1.7.6'

    三、Django命令。

    1. 新建項目(mywebsite):

    django-admin.py startproject mywebsite

    django-admin.py文件的目錄 python安裝目錄下的 python27\Lib\site-packages\Django-1.9.2-py2.7.egg\django\bin

    2. 新建app(learn)

    manage.py startapp learn

    manage.py文件的目錄 python安裝目錄下的 python27\Lib\site-packages\Django-1.9.2-py2.7.egg\django\bin\mywebsite

    3. 同步數據庫


    python manage.py syncdb
     
    注意:Django 1.7.1及以上的版本需要用以下命令
    python manage.py makemigrations
    python manage.py migrate
    這種方法可以創建表,當你在models.py中新增了類時,運行它就可以自動在數據庫中創建表了,不用手動創建

    4. 使用開發服務器。


    開發服務器,即開發時使用,一般修改代碼后會自動重啟,方便調試和開發,但是由于性能問題,建議只用來測試,不要用在生產環境。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    python manage.py runserver
     
    # 當提示端口被占用的時候,可以用其它端口:
    python manage.py runserver 8001
    python manage.py runserver 9999
    (當然也可以kill掉占用端口的進程)
     
    # 監聽所有可用 ip (電腦可能有一個或多個內網ip,一個或多個外網ip,即有多個ip地址)
    python manage.py runserver 0.0.0.0:8000
    # 如果是外網或者局域網電腦上可以用其它電腦查看開發服務器
    # 訪問對應的 ip加端口,比如 http://172.16.20.2:8000


    5. 清空數據庫


    python manage.py flush

    此命令會詢問是 yes 還是 no, 選擇 yes 會把數據全部清空掉,只留下空表。

    6. 創建超級管理員


    python manage.py createsuperuser
     
    # 按照提示輸入用戶名和對應的密碼就好了郵箱可以留空,用戶名和密碼必填
     
    # 修改 用戶密碼可以用:
    python manage.py changepassword username

    7. 導出數據 導入數據

    1
    2
    python manage.py dumpdata appname > appname.json
    python manage.py loaddata appname.json

    關于數據操作 詳見:數據導入數據遷移,現在了解有這個用法就可以了。

    8. Django 項目環境終端


    python manage.py shell

    如果你安裝了 bpython 或 ipython 會自動用它們的界面,推薦安裝 bpython。

    這個命令和 直接運行 python 或 bpython 進入 shell 的區別是:你可以在這個 shell 里面調用當前項目的 models.py 中的 API,對于操作數據,還有一些小測試非常方便。

    9. 數據庫命令行


    python manage.py dbshell

    Django 會自動進入在settings.py中設置的數據庫,如果是 MySQL 或 postgreSQL,會要求輸入數據庫用戶密碼。

    在這個終端可以執行數據庫的SQL語句。如果您對SQL比較熟悉,可能喜歡這種方式。

    10. 更多命令

    1
    終端上輸入 python manage.py 可以看到詳細的列表,在忘記子名稱的時候特別有用。

    四、項目實例。(視圖和網址的應用)

    新建一個mywebsite實例,一個learn應用。

    成功后的目錄結構


    mysite
    ├── manage.py
    └── mysite
        ├── __init__.py
        ├── settings.py
        ├── urls.py

        └── wsgi.py

    └── learn/


        ├── __init__.py
        ├── admin.py
        ├── models.py
        ├── tests.py
        └── views.py
    settings.py是項目配置文件,urls.py是url配置文件。wsgi.py部署服務器時候用到的文件。

    1. 把我們新定義的app加到settings.py中的INSTALL_APPS

    修改 mysite/mysite/settings.py


    INSTALLED_APPS = (
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
     
        'learn',
    )

    備注,這一步是干什么呢? 新建的 app 如果不加到 INSTALL_APPS 中的話, django 就不能自動找到app中的模板文件(app-name/templates/下的文件)和靜態文件(app-name/static/中的文件) , 后面你會學習到它們分別用來干什么.


    2. 定義視圖函數(訪問頁面時的內容)

    我們在learn這個目錄中,把views.py打開,修改其中的源代碼,改成下面的


    #coding:utf-8
    from django.http import HttpResponse
     
    def index(request):
        return HttpResponse(u"歡迎光臨 自強學堂!")

    第一行是聲明編碼為utf-8, 因為我們在代碼中用到了中文,如果不聲明就報錯.

    第二行引入HttpResponse,它是用來向網頁返回內容的,就像Python中的 print 一樣,只不過 HttpResponse 是把內容顯示到網頁上。

    3. 定義視圖函數相關的URL(網址)  (即規定 訪問什么網址對應什么內容)

    我們打開 mysite/mysite/urls.py 這個文件, 修改其中的代碼:

    由于 Django 版本對 urls.py 進行了一些更改:

    Django 1.7.x 及以下的同學可能看到的是這樣的:


    from django.conf.urls import patterns, include, url
     
    from django.contrib import admin
    admin.autodiscover()
     
    urlpatterns = patterns('',
        url(r'^$', 'learn.views.index'),  # new
        # url(r'^blog/', include('blog.urls')),
     
        url(r'^admin/', include(admin.site.urls)),
    )

    Django 1.8.x及以上,Django 官方鼓勵(或說要求)先引入,再使用:


    from django.conf.urls import url
    from django.contrib import admin
    from learn import views as learn_views  # new
     
    urlpatterns = [
        url(r'^$', learn_views.index),  # new
        url(r'^admin/', admin.site.urls),
    ]

    4. 在終端上運行 python manage.py runserver 我們會看到類似下面的信息:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $ python manage.py runserver
     
    Performing system checks...
     
    System check identified no issues (0 silenced).
     
    You have unapplied migrations; your app may not work properly until they are applied.
    Run 'python manage.py migrate' to apply them.
     
    December 22, 2015 - 11:57:33
    Django version 1.9, using settings 'mysite.settings'
    Starting development server at http://127.0.0.1:8000/
    Quit the server with CONTROL-C.

    我們打開瀏覽器,訪問 http://127.0.0.1:8000/

    獲取GET傳遞過來的數據:

     采用 /add/?a=4&b=5 這樣GET方法進行

    views.py修改:

    from django.shortcuts import render
    from django.http import HttpResponse
     
    def add(request):
        a = request.GET['a']
        b = request.GET['b']
        c = int(a)+int(b)
        return HttpResponse(str(c))

    注:request.GET 類似于一個字典,更好的辦法是用 request.GET.get('a', 0) 當沒有傳遞 a 的時候默認 a 為 0

    urls.py修改

    Django1.8以上

    1
    2
    3
    4
    5
    6
    7
    8
    9
    from django.conf.urls import url
    from django.contrib import admin
    from calc import views as learn_views
     
    urlpatterns = [
        url(r'^add/',  learn_views.add, name='add'),  # 注意修改了這一行
        url(r'^admin/', admin.site.urls),
    ]

    我們打開開發服務器并訪問

    1
    2
    3
    python manage.py runserver
    如果提示 Error: That port is already in use.在后面加上端口號8001,8888等
    python manage.py runserver 8001

    打開網址:http://127.0.0.1:8000/add/ 就可以看到

    如果 采用  /add/3/4/  這樣的網址的方式
    views.py

    def add2(request, a, b):
        c = int(a) + int(b)
        return HttpResponse(str(c))

    Django 1.8.x 及以上:


        url(r'^add2/(\d+)/(\d+)/$', calc_views.add2, name='add2'),

    可以看到網址中多了 (\d+), 正則表達式中 \d 代表一個數字,+ 代表一個或多個前面的字符,寫在一起 \d+ 就是一個或多個數字,用括號括起來的意思是保存為一個子組(更多知識請參見Python 正則表達式),每一個子組將作為一個參數,被 views.py 中的對應視圖函數接收

    我們再訪問 http://127.0.0.1:8000/add/4/5/ 就可以看到和剛才同樣的效果,但是這回網址更優雅了

    五、項目實例。(模版)


    . 打開 learn/views.py 寫一個首頁的視圖


    from django.shortcuts import render
     
     
    def home(request):
        return render(request, 'home.html')

    在 learn目錄下新建一個 templates 文件夾,里面新建一個 home.html

    默認配置下,Django 的模板系統會自動找到app下面的templates文件夾中的模板文件。

    def home(request):
    
        name_list = ['張三', '李四', '王五', '趙六']
        content = {'title': '名單'
        return render(request, 'home.html', {'name': name_list, 'content': content})
    模版傳參數。


    模版中變量訪問

    {{content.title}}

    模版中方法的應用:

    {{ % for n in name % }}

    {{% endfor %}}

    六、Django使用數據庫。

    settings.py配置文件

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'Person',
            'USER': 'root',
            'PASSWORD': '123',
            'HOST': '',
            'PORT': '3306',
        }
    }
    可能會報錯,沒有mysqldb驅動模塊,https://pypi.python.org/pypi/MySQL-python/下載安裝就行了。

    django.db.utils.operationalerror:<2003, cant connect to mysql  

    上面配置里面的HOST字段修改成:127.0.0.1

    轉載于:https://my.oschina.net/shyl/blog/620892

    版權聲明:本文為weixin_33778778原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/weixin_33778778/article/details/91618157

    智能推薦

    Django入門教程

    Django入門教程 Django是一個開放源代碼的Web應用框架,由Python寫成。采用了MTV的框架模式,即模型M,模板T和視圖V。其最大特點自帶一個后臺管理系統,可以讓只要少量代碼就能實現后臺管理,尤其適合內容管理網站(如博客,新聞,公司首頁等信息類網站),適合中小型web網站。 Django基本介紹 Django安裝 Hello Django 開發工具 Django基本介紹 Django...

    django自學教程

    歡迎關注我的公眾號【軟件測試小助手】,分享我每天的學習干貨,可以在公眾號進群,大家一起討論哦~ 從開發轉測試已經2年了,雖然寫的都是自動化,但是很久沒有實際項目練手了,很多東西都忘了,最近看到python的web框架,剛好可以學習,拿來練練手,本篇是個入門教程,后面會不斷更新哦~ 一、安裝djagno 查看版本不報錯,即安裝成功 二、創建項目 三、創建應用 四、修改應用路徑 五、應用的view添加...

    Django快速開發教程

    第一部分 一個網絡框架需要完成怎樣的功能?而Django又是如何實現這些功能的?接下來,我們將這些需要完成的功能一一列舉,并闡明Django是如何將其實現的。 在此之前,先讓我們創建一個Django下的工程文件,并由此文件來展開。 工程配置 django-admin startproject djangoproject 其中,djangoproject 表示的是所創建工程的名稱。此時可以看到我們新...

    django-allauth教程

    1. 安裝 pip install django-allauth 2. 注冊應用 將allauth相關APP加入到INSTALLED_APP里去。對于第三方的providers,你希望用誰就把它加進去。值得注意的是allauth對于站點設置django.contrib.sites有依賴,你必需也把它加入進去,同時設置SITE_ID。 3. settings.py中增加如下配置項 4. 項目urls...

    Django基礎教程

    一、Django是什么? Django 是用 Python 開發的一個免費開源的 Web 框架,可以用于快速搭建高性能、優雅的網站,Django 提供了許多網站后臺開發經常用到的模塊,使開發者能夠專注于業務部分。 二、MVC設計模式 在Web開發領域有一個著名的設計模式 ---- MVC,而Django的設計模式是MTV M:Model模型,和數據庫進行交互 V:View視圖,產生html頁面 C...

    猜你喜歡

    Django教程 —— 模型設計

    模型設計 我們一般操作數據庫的時候都是通過寫sql語句,那么能不能不寫sql語句就可以操作數據庫呢? 可以利用ORM框架。 ORM框架 O是object,也就 類對象 的意思,R是relation,翻譯成中文是關系,也就是關系數據庫中 數據表 的意思,M是mapping,是映射的意思。在ORM框架中,它幫我們把類和數據表進行了一個映射,可以讓我們通過類和類對象就能操作它所對應的表格中的數據。ORM...

    HTML中常用操作關于:頁面跳轉,空格

    1.頁面跳轉 2.空格的代替符...

    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壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...

    精品国产乱码久久久久久蜜桃不卡