2016年8月8日 星期一

使用 Django 後台管理程式 Admin

設定目標:
  • 利用 Django 的後台管理程式,進行站台管理
快速操作流程:
  1. 先移植一個管理樣板進到 Admin 工具內:
    #python manage.py migrate
    
  2. 利用 createsuperuser 指令,建立一個 super user 帳號:
    # ./manager.py createsuperuser
    
  3. 啟動 Django Web 站台:
    #./manage.py runserver 192.168.5.104:8081
    
  4. 利用瀏覽器登入後台系統:
    #firefox http://192.168.5.104:8081/admin
    
參考文獻:
  • https://djangogirlstaipei.gitbooks.io/django-girls-taipei-tutorial/content/django/admin.html
  • http://dokelung-blog.logdown.com/posts/220832-django-notes-6-manage-your-system-admin

利用 supervisor 來管理 Django 的程序

設定目標:
  • 安裝 supervisor 來進行 Django 程序管理
  • 為配合 nginx ,請參考這一篇安裝好 Nginx 以及 Django
快速安裝流程:
  1. 利用 pip 工具,安裝 supervisor 套件:
    #pip install supervisor
    
  2. 利用 supervisor 工具,產生 supervisor 設定檔:
    #echo_supervisord_conf > /etc/supervisord.conf
    
  3. 編輯 supervisor 設定檔:
    #vim /etc/supervisord.conf
    (在檔案最尾端,加上下列幾行設定:)
    [program:mysite]
    command=/bin/uwsgi --http :8081 --chdir /usr/share/nginx/html/mysite --module mysite.wsgi
    directory=/usr/share/nginx/html/mysite
    startsecs=0
    stopwaitsecs=0
    autostart=true
    autorestart=true
    
  4. 啟動 supervisor 服務:
    #supervisord -c /etc/supervisord.conf
    
  5. 動新啟動 mysite 站台運作:
    #supervisorctl -c /etc/supervisord.conf restart mysite
    
    ※其他操作 supervisorctl 的指令:supervisorctl -c /etc/supervisord.conf [start|stop|restart] [program-name|all]
  6. 開啟防火牆設定:
    #firewall-cmd --permanent --add-port=8081/tcp
    #firewall-cmd --reload
    
  7. 利用 ini 文件來結合 nginx 運作:
    #vim /usr/share/nginx/html/mysite/mysite.ini
    [uwsgi]
    socket = /tmp/mysite.sock
    chdir=/usr/share/nginx/html/mysite
    wsgi-file = mysite/wsgi.py
    touch-reload=/usr/share/nginx/html/mysite/reload
    
    processes = 1
    threads = 2
    
    chmod-socket = 664
    chown-socket=nginx:nginx
    
  8. 重新編輯 supervisor 設定檔:
    #vim /etc/supervisord.conf
       :
       :(略過...)
    [program:mysite]
    command=/bin/uwsgi --ini /usr/share/nginx/html/mysite/mysite.ini
    directory=/usr/share/nginx/html/mysite
    startsecs=0
    
  9. 動新啟動 mysite 站台運作:
    #supervisorctl -c /etc/supervisord.conf restart mysite
    
  10. 在 Nginx 上,新增 mysite 設定檔:
    #vim /etc/nginx/conf.d/mysite.conf
    server {
        listen      8081;
        server_name 192.168.5.104;
        charset     utf-8;
    
        client_max_body_size 75M;
    
        location /media  {
            alias /usr/share/nginx/html/mysite/media;
        }
    
        location /static {
            alias /usr/share/nginx/html/mysite/static;
        }
        location / {
            uwsgi_pass  unix:///tmp/mysite.sock;
            include     /etc/nginx/uwsgi_params;
        }
    }
    
    
  11. 重新啟動 Nginx :
    #systemctl restart nginx
    

參考文獻:
  • http://www.aahyhaa.com/archives/587
  • http://uwsgi-docs.readthedocs.io/en/latest/tutorials/Django_and_nginx.html
  • https://www.digitalocean.com/community/tutorials/how-to-serve-django-applications-with-uwsgi-and-nginx-on-centos-7
  • https://www.restran.net/2015/04/09/centos-uwsgi-nginx-django/

2016年8月4日 星期四

Django 程式開發初體驗

快速開發與測試:
  1. 修改 urls.py 檔案內容:
    #vim urls.py
        :
    from views import here  #加入此行
        :
        :
    urlpatterns = [
        url(r'^admin/', admin.site.urls),
        url(r'^here/$', here),  #加入這一行
    ]
    
    
  2. 新增 views.py 檔案:
    #vim views.py
    # -*- coding: utf-8 -*- 
    from django.http import HttpResponse
    
    def here(request):
        return HttpResponse("Hello World!")
    
    
  3. 啟動 django 站台:
    #../manage.py runserver 192.168.5.104:8080
    
  4. 使用 firefox 開啟網頁:
    #firefox http://192.168.5.104:8080/here/
    

Django 網路相關文章

教學文件:

  • http://www.ziqiangxuetang.com/django/django-nginx-deploy.html

在 CentOS7 / RHEL7 上安裝 Django

快速安裝流程:
  1. 安裝 Python 的 pip 工具:
    #yum install python-pip
    
  2. 利用 pip 工具安裝 Django:
    #pip install django
       :
       :
    Installing collected packages: django
    Successfully installed django-1.10
    
  3. 配置 Django 網頁目錄:
    #cd /usr/share/nginx/html/
    #django-admin startproject mysite
    
  4. 編修 settings.py 檔案內容:
    #cd mysite/mysite
    #vim settings.py
    (在檔案最後的一行下,加入下列程式碼:)
    STATIC_ROOT = os.path.join(BASE_DIR, 'static')
    
  5. 利用 manage.py 來產生"static"網頁資料匣:
    #cd ..
    #./manage.py collectstatic
    
  6. 開啟防火牆設定:
    #firewall-cmd --permanent --add-port=8080/tcp
    #firewall-cmd --reload
    
  7. 利用 manage.py 來測試網站是否正常運作:
    #./manage.py runserver 192.168.5.104:8080
    
  8. 安裝 uWSGI 套件:
    #yum install python-devel gcc
    #pip install uwsgi
    
  9. 利用 uWSGI 開啟網站:
    # uwsgi --http :8080 -w mysite.wsgi
    
  10. 利用 pip 更新 pip:
    #pip install --upgrade pip
    
參考文獻:

  1. http://www.jianshu.com/p/69b3b8e39bf4