首頁 > 軟體

Ubuntu上Django使用簡單範例

2020-06-16 17:23:17

Django是用Python寫的一個非常著名的web框架,下面講下在Ubuntu上怎麼部署及使用。

1、部署Django

1.1、python相關部署

1.1.1 、安裝python

一般ubuntu上都預設裝了python,可以使用python -V檢視下版本。
root@ubuntu:/# python -V
 Python 2.7.3

1.1.2、安裝setuptools

裝了這個就可以用easy_install安裝很多python庫了

apt-get install python-setuptools 

1.1.3、安裝python-dev
後面安裝sqlite的時候會用到,不裝的話會提示can't find python.h。類庫內含需要編譯的呼叫python api的c/c++檔案時得安裝它。
apt-get install python2.7-dev

1.2、部署sqlite
Django會預設使用資料庫sqlite,這個可能是個最輕便的資料庫了,可以像檔案一樣操作,沒有獨立的進程。
apt-get install sqlite3
 apt-get install libsqlite3-dev
 easy_install  pysqlite

1.3、部署Django
easy_install django

執行如下命令就會展示django版本,這裡看到的是1.10.3

root@ubuntu:/# python
 Python 2.7.3 (default, Jun 22 2015, 19:43:34)
 [GCC 4.6.3] on linux2
 Type "help", "copyright", "credits" or "license" for more information.
 >>> import django
 >>> django.VERSION
 (1, 10, 3, u'final', 0)

2、使用Django

2.1、建立專案

django-admin.py startproject py_website

#會在當前目錄下生成資料夾py_sebsite

#django-admin.py在django安裝成功後在任意路徑下都可以呼叫

root@ubuntu:/home/django_proj# cd py_website/
 root@ubuntu:/home/django_proj/py_website# ls -a
 .  ..  manage.py  py_website

2.2、建立應用程式

python manage.py startapp pyapp

會在當前目錄下建立資料夾pyapp

root@ubuntu:/home/django_proj/py_website/pyapp# ls -a
 .  admin.py  __init__.py  models.py  views.py
 ..  apps.py  migrations  tests.py

這裡沒改動model.py檔案,假如有改動了需要同步得執行如下兩個命令來同步(都先新增了應用到setting.py後才能執行此命令)

python manage.py  makemigrations

python manage.py migrate

這個版本1.10,老點的版本一般是用python manage.py syncbd來同步

2.3、新增應用程式到setting.py

setting.py檔案在py_website/py_website下。

# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'pyapp'  #新增這個
]

2.4、啟動伺服器

root@ubuntu:/home/django_proj/py_website# python manage.py runserver
 Performing system checks...
 System check identified no issues (0 silenced).
 You have 13 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
 Run 'python manage.py migrate' to apply them.
 November 12, 2016 - 07:09:12
 Django version 1.10.3, using settings 'py_website.settings'
 Starting development server at http://127.0.0.1:8000/
 Quit the server with CONTROL-C.

通過python manage.py runserver成功啟動伺服器後,你在ubuntu上用瀏覽器開啟

localhost:8000/admin就會看到一個登陸頁面了。

2.4.1、埠被佔用了怎麼整?

有時8000埠可能會被佔用了。找出佔用埠的進程並kill掉

root@ubuntu:/# netstat -anp|grep 8000
 tcp        0      0 127.0.0.1:8000          0.0.0.0:*              LISTEN      32149/python

root@ubuntu:/#kill -9 32149

2.4.2、不是本地存取怎麼整?

編輯setting.py檔案

ALLOWED_HOSTS = ['192.168.253.135']

填你django所在的伺服器ip。

runserver不加引數預設只能本地存取。如果這樣啟動

python manage.py runserver 0.0.0.0:8000

0.0.0.0:8000 表示讓Django監聽所有網路介面和IP地址,否則預設監聽127.0.0.1:8000,也就是只允許本機存取。

你在其他任何能存取這個ip的地方輸入如下url就能存取了

http://192.168.253.135:8000/admin

Ubuntu 14.04下Django+MySQL安裝部署全過程 http://www.linuxidc.com/Linux/2016-02/128714.htm

Ubuntu 16.04下安裝部署 Nginx+uWSGI+Django1.9.7  http://www.linuxidc.com/Linux/2016-07/133484.htm

Ubuntu 16.04下設定Django專案 http://www.linuxidc.com/Linux/2017-01/139417.htm


IT145.com E-mail:sddin#qq.com