完成Django的部署后已经可以实现公网访问了,下面我们将对项目内容进行填充。
主要任务是:配置app,实现网页展示,共四步
目录
创建完django项目后文件结构如下:
- 最外层的 Supernova/ 根目录只是项目的容器,创建项目后依然可以自定义。
- manage.py: 管理 Django 项目的命令行工具,不需要修改。
- 里面一层的 Supernova/ 目录包含你的项目,它是一个纯 Python 包。它的名字就是当你引用它内部任何东西时需要用到的 Python 包名。 (比如 Supernova.urls).
- Supernova/__init__.py:一个空文件,告诉 Python 这个目录应该被认为是一个 Python 包。
- Supernova/settings.py:Django 项目的配置文件,需要修改。
- Supernova/urls.py:项目的 URL 声明,像网站“目录”,频繁修改。
- Supernova/asgi.py:项目运行在 ASGI 兼容的 Web 服务器的入口,基本用不到。
- Supernova/wsgi.py:项目运行在 WSGI 兼容的Web服务器的入口,基本用不到。
拓展资料:
- 官方文档:django-admin 和 manage.py
- 官方文档:Django 配置
- 官方文档: URL调度器
1. APP配置
app主要是不同功能的分区,小项目一个就够用
第一步:创建app
python3 manage.py startapp 分区名称
Linux思想:没有回应就是最好的回应
此时app01分区自动创建成功
admin.py:后台管理工具。可以登录后台管理model和数据库
apps.py:app名称的配置文件。定义了app名称
models.py:模型文件。里面放的都是数据库表的映射
tests.py:测试文件。测试用的,目前没有内容
views.py:【重要】视图函数文件。从url.py跳转过来触发对应的功能函数,可以在网页返回各种内容,或者触发服务器程序(app编辑最频繁的文件)
第二步:注册app
将app01写入项目setting.py
保存即注册成功
2. url路径与视图配置
第三步:配置url路径
url路径触发指定的视图函数
多app配置方法一:
第四步:配置视图函数
视图即网页呈现的内容
HttpResponse可以在网页上直接返回文本
浏览器访问:116.62.170.204:8080/home/
访问路径结构:ip+端口+url路径
3. 视图函数
i. 直接在网页返回文本
def home(request):
return HttpResponse("Welcome to new world!")
ii. 返回网页
需要手动创建一个网页文件夹templates用于存放html文件
- 必须命名为templates
- 该文件夹可以在app目录下,也可以在Supernova根目录下
- 程序优先去项目的根目录下寻找html文件
- 然后根据app的注册顺序去app的目录下templates下寻找
- 小项目建议只在app下建templates文件夹,方便管理
- 用pycharm创建项目的会指定在根目录寻找
- 根据需要更改setting.py即可
配置教程:Django中Settings中Templates的路径设置
先在templates文件夹里写好html文件
定义视图函数,指定html文件
url路径也得添加好
保存
浏览器访问116.62.170.204:8080/guidance/
到这里已经可以实现在公网访问指定网页了,下一部分我们将丰富html网页内容
iii. 触发功能
以返回ip为例
def myip(request):
values = request.META.items()
html = []
# 返回全部request信息
# for k, v in values:
# html.append('<tr><td>%s</td><td>%s</td></tr>' % (k,v))
# 返回真实地址
if request.META.get('HTTP_X_FORWARDED_FOR'):
html.append('<tr><td>IP地址</td><td>%s</td></tr>' % request.META['HTTP_X_FORWARDED_FOR'])
# 返回直接地址
else :
html.append('<tr><td>IP地址</td><td>%s</td></tr>' % request.META['REMOTE_ADDR'])
return HttpResponse('<table>%s</table>' % '\n'.join(html))
这里可以自定义各种功能,比如接受post请求实现文件断点上传,view函数可以实现非常丰富的功能,不一例举,大家自由探索吧。
4. 静态文件
需要手动在app目录下创建static静态资源文件
其中css,js,img,viedo都是常用的静态资源,建立各自的文件夹方便管理
i. 必须命名为static
因为配置文件里已经写好了文件名
ii. 静态资源调用方法:
(“{ }“是django一种模板语法 )
声明:在开头声明静态文件路径
{% load static %}
调用:调用静态路径
{% static "video/OWSvideo.mp4" %}
示例1
示例2
模板语法讲解:templates模板语法-优快云博客
网页模板网站: 588+ Free HTML CSS Website Templates by TemplateMo
拓展文献: