Django的简单应用
Django是一个可以使Web开发工作愉快并且高效的Web开发框架。 使用Django,使你能够以最小的代价构建和维护高质量的Web应用。
环境推荐:
- python 3.6.9
- django 3.2.14
- linux (Ubuntu 18)
1、Django安装
Django可以直接使用pip工具进行安装,如果没有安装python需要先安装python。
在终端运行这条命令安装django3.2.3版本
pip3 install django==3.2.14
安装成功后,运行这条命令查看安装的django版本
django-admin --version
2、创建Django工程和app
进入你的用户目录,然后执行下列命令。在这里先约定
工程名是“myproject”,app名是“myapp”
raysees@Raysees-LTX:~$ cd /home
raysees@Raysees-LTX:~$ mkdir DjangoTest
raysees@Raysees-LTX:~$ cd DjangoTest
raysees@Raysees-LTX:~$ django-admin startproject myproject
# 此时的目录结构如下(没有tree命令可以先sudo apt-get install tree)
raysees@Raysees-LTX:~$ cd myproject/
raysees@Raysees-LTX:~/myproject$ tree
.
├── manage.py
└── myproject
├── __init__.py
├── asgi.py
├── settings.py
├── urls.py
└── wsgi.py
raysees@Raysees-LTX:~/myproject$ python3 manage.py startapp myapp
raysees@Raysees-LTX:~/myproject$ tree
.
├── manage.py
├── myapp
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── tests.py
│ └── views.py
└── myproject
├── __init__.py
├── __pycache__
│ ├── __init__.cpython-36.pyc
│ └── settings.cpython-36.pyc
├── asgi.py
├── settings.py
├── urls.py
└── wsgi.py
到此工程和app都创建完毕,接下来测试一下Django应用。
执行
python3 manage.py runserver 0.0.0.0:8000
在浏览器地址栏输入 127.0.0.1:8000回车进入欢迎页面,说明Django应用安装完成,可以正常使用。
3、Django应用配置,自定义路由,编写接口等
myproject/myproject/setting.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp',#(添加此项)
]
创建templates目录,在这个目录下存放模板文件(html)
raysees@Raysees-LTX:~/myproject$ cd myapp/
raysees@Raysees-LTX:~/myproject/myapp$ mkdir template
raysees@Raysees-LTX:~/myproject/myapp$ tree
.
├── __init__.py
├── admin.py
├── apps.py
├── migrations
│ └── __init__.py
├── models.py
├── templates
├── tests.py
└── views.py
raysees@Raysees-LTX:~/myproject/myapp$ vim templates/index.html
<!-- 输入这两句,保存退出 -->
{{Title}}
{{Text}}
raysees@Raysees-LTX:~/myproject/myapp$ cd ..
raysees@Raysees-LTX:~/myproject$ vim myproject/urls.py
# 在文件中添加下列内容
from django.conf.urls import url
from django.urls import path
from myapp import views as myapp_views
urlpatterns = [
path(r'admin/', admin.site.urls),
url(r'^index/$',my_views.index),
]
raysees@Raysees-LTX:~/myproject$ vim myapp/views.py
# 在文件中添加下列内容
from django.shortcuts import render
def index(request):
return render(request,'index.html',{"Title":"myapp","Text":"这是一个由Django构建的myApp的index页面"})
重新启动django服务,浏览器访问127.0.0.1:8000/index,页面上显示“myapp 这是一个由Django构建的myApp的index页面”即为配置成功。再添加更多的页面路由也是一样的方法,模板文件html可以完全按HTML标准编写,只要配置好路由即可正常访问。
raysees@Raysees-LTX:~/myproject$ python3 manage.py runserver 0.0.0.0:8000
关于接口的编写
本文编写在view.py文件中。
外部调用接口:
get方式,/sum?num1=1&num2=2
# 必须引入的模块
from django.http import HttpResponse
# 求和接口,输入两值求和并返回
def sum(request):
request.encoding='utf-8'
num1 = -1
num2 = -1
if 'num1' in request.GET:
num1=request.GET['num1']
if 'num2' in request.GET:
num2=request.GET['num2']
return HttpResponse(num1+num2)
在myproject/urls.py中为接口注册路由
from django.conf.urls import url
from django.urls import path
from myapp import views as myapp_views
urlpatterns = [
path(r'admin/', admin.site.urls),
url(r'^index/$',my_views.index),
url(r'^sum/$',my_views.sum),
]
然后在index.html中编写一个简单的ajax回调测试一下接口就行了。
4、静态文件路径配置
先在setting.py文件中添加
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR,"static")
然后执行这条命令
raysees@Raysees-LTX:~/myproject$ python3 manage.py collectstatic
128 static files copied to '/home/raysees/myproject/static'.
此时,Django应用所使用的的所有静态文件都被放到了static目录下,查看一下目录结构
raysees@Raysees-LTX:~/myproject/static$ tree -L 2
.
└── admin
├── css
├── fonts
├── img
└── js
5 directories, 0 files
可以把在template中需要用到的静态文件如css和js还有图片等放到static目录下,然后就可以在html文件里使用static构造静态文件的相对路径进行访问
{% load static %}
<img src="{% static "myapp/example.jpg" %}" alt="My image">