Django使用简单示例

时间:2022-08-04 05:13:48

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