1. ubuntu 安装 python3, django

​sudo apt install python3​​ 即可安装 python

用清华的源安装 django

sudo pip3 install Django -i https://pypi.tuna.tsinghua.edu.cn/simple


2. Hello World

2.1 新建项目 HelloWorld

​django-admin​​是django管理命令,打一下回车可以看见子命令,其中有 startproject

django-admin startproject HelloWorld


即可新建 HelloWorld 项目,会在当前目录生成 HelloWorld 文件夹,可以

cd HelloWorld
tree


即得文件目录。可以启动项目:

​ python3 manage.py runserver 0.0.0.0:8000​

就可以在自己浏览器上访问了: 127.0.0.1:8000

2.2 改动 HelloWorld

vi HelloWorld/views.py


在其中写如下内容:

from django.http import HttpResponse

def hello(request):
return HttpResponse("Hello world ! ")


这个就是设计了一个动作,在屏幕上显示 "Hello world!" 这个字符串。

vi HelloWorld/urls.py


写入如下内容:

from django.urls import path

from . import views

urlpatterns = [
path('hello/',views.hello),
]


启动项目:

python3 manage.py runserver 0.0.0.0:8000 &


然后访问 127.0.0.1:8000/hello,就会在浏览器里显示 Hello world!

3. 用模板输出网页

3.1 新建输出模板文件

在 HelloWorld 下新建 templates,新建 templates/runoob.html:

<h1>{{ hello }}</h1>


这个应该是规定输出格式的,hello 是一个变量。h1 是格式,类似于 markdown global settings 里面的,我估计是相通的。

3.2 修改 HelloWorld/settings.py

加一个 ​​import os​

然后修改 TEMPLATES 中的 DIRS 的值:

        'DIRS': [os.path.join(BASE_DIR, 'templates')],


3.3 修改 HelloWorld/views.py

增加如下内容:

from django.shortcuts import render

def runoob(request):
context = {}
context['hello'] = 'Hello World!'
return render(request, 'runoob.html', context)


context 大概是给变量 hello 赋值 Hello World!,render 将 request 和 runoob.html 联系起来,并且把 runoob.html 中的变量 hello 用 context 赋值。

所以,这样就可以反复使用一个格式模板 runoob.html。

3.4 修改 HelloWorld/urls.py

把域名和 views.runoob 这个函数联系起来。

urlpatterns = [
path('',views.hello),
path('runoob/', views.runoob),
]


3.5 检验

访问 127.0.0.1:8000,会触发 path('',views.hello),显示Hello World;访问 127.0.0.1:8000/runoob,会触发 path('runoob/', views.runoob),显示带格式的 Hello World.

3.6 其他电脑访问

修改 HelloWorld/settings.py:

ALLOWED_HOSTS = ['*',]


然后开放防火墙上的端口8000:

sudo firewall-cmd --zone=public --add-port=8000/tcp --permanent
sudo firewall-cmd --reload


即可从内网任何一台电脑访问了。

3.7 公网访问

把项目放在腾讯云服务器上,然后如上运行,即可从公网访问:

xx.xx.xx.xx:8000