初识 Django
安装
安装 Python
推荐使用 Python 3 而不是 Python 2 版本,因为毕竟 Python 2 已经停止维护更新,所以先安装 Python 3,哪个版本的都可以。
多说下,如果你是需要两个版本并存,比如我的电脑上因为有些脚本还是 Python 2 写的,所以还是不能直接换成 Python 3,就要下载两个不同的版本。
我是先下载的 Python 2 后下载的 Python 3,方法很简单,把其中一个的 python.exe 改名字,因为常用的还是 Python 2,所以这里是把 Python 3 文件夹下面的 python.exe 改成了 python3.exe, 记得要把 folder 路径加到环境变量里面,这样想用 Python 3 运行的时候就执行 :
python3 xxx.py
特别说明下,如果是用 pip install package 的时候,需要打如下命令才能安装到 python 3 下:
python3 -m pip install xxx
安装 Django
直接使用 pip 安装就好:
python3 -m pip install django
如果想下载最新的,就需要到官网 上查看最新的版本,比如现在最新的是3.0.4, 那么安装命令就是:
python3 -m pip install Django==3.0.4
创建项目
初始项目
首先创建一个项目,进入要创建的目录运行如下命令:
django-admin startproject project_name
运行后目录下会创建对应的folder,结构如下:
mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
解释下每个文件代表的意思:
- manage.py: 这个是命令行运行的入口
- settings.py: 项目的设定和配置
- urls.py: 路由文件,链接内的跳转都在这里配置
- asgi.py: 异步的 SGI,这个是 Django 3.0 才引入的新特性,详细的介绍可以参考这里
- wsgi.py: 同上
运行
在项目根目录下面,运行如下的命令:
python3 manage.py runserver
如果没有异常会显示如下:
Django version 3.0.3, using settings 'vendor_loading.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
那么打开浏览器输入上面的link,就可以正常打开 Django server的网页了,当然这个只是本地测试开发使用,正式产品可不是这种方法。
创建应用
这里一开始也有些困惑项目的应用的意思,其实可以理解成,项目相当与一个网站的骨架,基于这个骨架下你可以有多种不同的应用类型,比如 Blog,短视频,这样的好处是只要都是 Django 建站,那么这些应用可以很方便放到不同的网站服务器中运行。
创建成功后,接下来要做什么呢?当然是先所见即所得,先可以看到一个启动后的网页。
创建一个视图
在创建出来的应用中有一个文件叫 view.py, 默认是空的,我们先简单的放上一句话:
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world. You're at the polls index.")
这里先不管他的意思,可以想象成就是返回了一串文字插入到html中。
接下来视图有了,问题是这个视图怎么被叫到呢?创建一个新的 python 文件,因为是路由相关的,就叫 urls.py,输入如下的内容:
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
这个从字面上比较好理解,创建一个urlpatterns, 路径默认使用views.index 这个方法,回到前面的 views.java文件,就可以看到这里的views.index 就是 views.py 的方法。
那么接下来,这个 urls 又会在哪里被用到呢?答案是在项目里面,别忘了现在这些都是在应用的 folder 中,所以还需要在项目的 urls.py 中加入对应用的 urls.py的调用,改动如下:
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('polls/', include('polls.urls')),
path('admin/', admin.site.urls),
]
这里详细说明下 path 的用法,总共会有4个参数,route, view, kwargs, name, 其意思分别如下:
- route: 是一个字符串表达式,实际就是根据表达式去匹配第一个匹配的,顺序是从上到下
- view: 在找到匹配的表达式后,就去调用对应的视图函数,会传递一个 HttpRequest 作为第一个参数传给视图函数
- kwargs: 可选参数
- name: 可选参数
到此,便可以在你的浏览器上根据route里面的定义,来访问不同的视图,比如说http://127.0.0.1:8000/admin,这个就会打开 Django 自带的 admin 应用