[CTF Web]用django快速搭建一个网站

Posted 漫小牛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[CTF Web]用django快速搭建一个网站相关的知识,希望对你有一定的参考价值。

1 什么是Django

  • Django是一个开放源代码的Web应用框架,由Python写成。
  • 采用了MTV的框架模式,即模型M(Model),视图V(View)和模板T(Template)。
  • 它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。

2 用Django创建项目

2.1 Django安装

安装Django环境:

python3 -m pip install django

2.2 创建项目

创建第一个项目:

django-admin startproject mysite

接下来,使用tree看一下创建好的mysite的目录结构:
在这里插入图片描述

  1. manage.py. Django用于管理本项目的命令行工具。
  2. _init_.py. 一个普通的包初始化模块。
  3. settings.py. Django项目的配置文件,本项目引用的组件,项目名,数据库配置,时间,语言,静态文件访问地址和存储路径。
  4. wsgi.py Web Server gateway interface接口信息用于服务器部署。

2.3 启动服务器

使用如下命令启动服务器:

python3 manage.py runserver 0.0.0.0:8000

可以看到服务器已经运行起来了:
在这里插入图片描述
在浏览器中输入http://127.0.0.1:8000/(注意,这里是http,不是https),即可看到Web页面,表示服务器搭建成功。

2.4 创建第一个app

使用如下命令创建第一个app:

django-admin startapp firstapp

在这里插入图片描述

2.4.1 Django应用注册及建立

接着来修改配置文件,配置文件在mysite文件夹下的settings.py。
第一个修改的位置是在INSTALLED_APPS数组中添加’firstapp’,主要为了让它能够索引到新增的应用。
第二个修改的位置是TEMPLATES,是它能够索引到我们后面即将要加入本项目的前端页面文件:
在这里插入图片描述
第三个修改的位置是ALLOWED_HOSTS,使它能被其他外界的IP地址访问。
在这里插入图片描述
这时候,配置文件已经修改完毕。

2.4.2 Django应用添加URL映射关系

接着来添加我们的执行层代码以及添加URL的映射关系。
第一步是添加执行层代码,进入到执行代码我呢见,在firstapp文件夹下的views.py文件中添加代码,这里定义了第一个函数firsthtml,这个函数的职能是直接渲染并且返回我们定义的静态文件index.html。
在这里插入图片描述
第二步是修改mysite的urls.py,使它能够将用户的URL访问地址链接到我们的执行代码。这里我们定义地址是helloworld,它要执行的代码时views里面的,我们刚刚定义的函数firsthtml。
需要注意的是,我们需要通过from firstapp imports views,否则它是无法找到的。
在这里插入图片描述

第三步是创建templates文件夹,这个文件夹用于存放我们的index.html内容。
在这里插入图片描述
第四步是在templates文件夹下,创建index.html文件:

echo "hello" > templates/index.html

在这里插入图片描述
可以看到我们已经创建成功。

2.4.3 测试服务器

通过如下命令:

python3 manage.py runserver 0.0.0.0:8000 

重新运行服务器,并通过浏览器打开,可以看到如下的页面:
在这里插入图片描述
说明我们已经成功定义了地址,并且成功执行了我们的执行层代码,所以服务器返回了hello,也就是我们刚刚定义的代码。

2.4.4 init数据库与创建账号

接下来,我们来初始化数据库并创建超级管理员账号。
执行的命令是通过manage.py进行create superuser。
在这里插入图片描述
经输入用户名、密码后,提示成功创建。现在我们重新启动服务器,就可以通过刚才的用户名密码访问后台:
在这里插入图片描述

3 服务器无法启动的问题

若启动web服务时报错,Error: That port is already in use.
则需杀掉8000端口对应的进程,执行如下命令:

lsof -i 8000
kill -9 pid

以上是关于[CTF Web]用django快速搭建一个网站的主要内容,如果未能解决你的问题,请参考以下文章

0 - Django 博客教程:前言

马哥金牌分享 | 十分钟学会用Django快速搭建一个blog

Python进阶(三十六)-Web框架Django项目搭建全过程

PythonWeb-Django框架学习-Demo1-快速搭建项目(上)

Django 搭建博客网站-task02:快速搭建网站

什么是django?