• python + django 搭建网页(2)


    换了个教程:https://www.runoob.com/django/django-first-app.html

    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

  • 相关阅读:
    iis里不能同时启动多个站点的原因总结:
    相机200万提升到300万的软件技术插值法
    nginx与PHP的安装配置
    IIS和apache都要同时使用80端口的解决办法
    nginx安装与配置
    只写一个表单,可以达到两个表单的效果
    nginx伪静态规则
    伪静态涉及到的重复页面之属性canonical
    ckeditor与ckfinder组合配置
    上传图片的美化
  • 原文地址:https://www.cnblogs.com/luyi07/p/15352328.html
Copyright © 2020-2023  润新知