如何快速开发网站
有许多用于开发网站的框架。这次,选择聊天以为您带来一个简单的网站。网站需要拥有很多知识,但是我们使用开源框架大大减少工作量,并且我们不需要充分了解基础实施的原理。
1。开发环境的建设
它是开发Web应用程序的框架。采用了MTV模式。实际上,MTV模式和MVC模式之间没有本质区别。 MTV只是MVC的衍生物。
MVC(视图)是指模型,查看和控制层。在此模式下,三层分开。我们通过视图层向用户显示数据。用户通过控制层执行逻辑操作。数据。 MTV(视图)和MVC相同。它们分为MTV中的模型,模板和查看层。这里的视图层等于MVC中的控制层(),模板层等效于MVC中的视图。
1.1环境安装
安装的前提是有一个环境。让我们先安装环境。输入官方网站以下载相应的版本,这是一个选择3.7:
可以单独选择该版本,但不建议使用。 2.x 。我们只需要打开文件安装即可。在安装过程中,我们在不需要配置环境变量的情况下检查添加到路径。
1.2安装
由于版本中不同的语法存在一些差异,因此我们必须首先确定使用的哪个版本。如下所示:
我们可以直接使用PIP安装:
pip install django==2.2
安装完成后,我们可以开始使用它。
1.3运行项目
这是我们最基本的情况。让我们尝试开发最简单的项目。安装后,我们可以在“安装目录/文件夹”中找到-.exe程序。该计划的作用是打开项目。我们在目录中打开命令行。如图所示,在红色框中输入CMD:
然后在命令行中执行以下语句:
django-admin startproject mysite
这是Web应用程序的名称。执行后,您的目录将生成一个目录,并且某些项目文件在目录中。或者我们可以切换到其他目录以通过CD操作启动项目。
成功创建后,目录结构如下:
实际上,我们已经完成了第一个网站,我们可以输入该项目的根目录:
cd mysite
然后运行服务器:
python manage.py runserver
该语句的执行实际上正在运行.py文件。控制台显示如下:
D:\CodeField\Python\Scripts\mysite>Python manage.py runserver Watching for file changes with StatReloader Performing system checks... System check identified no issues (0 silenced). You have 17 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions. Run 'python manage.py migrate' to apply them. March 03, 2020 - 12:45:11 Django version 2.2.10, using settings 'mysite.settings' \# 项目ip地址 Starting development server at http://127.0.0.1:8000/ Quit the server with CTRL-BREAK.
我们可以看到该项目以127.0.0.1:8000运行,然后在浏览器中输入IP以显示以下页面:
到目前为止,我们不需要任何与网络协议相关的知识来完成环境的构建和第一个项目的操作。但是,在我们自己写网站之前,我们简要介绍了网站的运行方式。
2。网络协议的相关知识
当我们访问网站时,我们在浏览器中输入了URL(域名),然后通过域名系统(DNS)解析IP地址,然后启动我们的网络请求。我们向服务器发送了一个请求,也就是说,告诉服务器我们正在寻找您获取东西。服务器接受您的请求,然后通过一系列逻辑操作,相应:无; -font-:; box - :;:0px 0px 1.1em;:0px; “>让我们输入//urls.py文件,代码如下:
from django.contrib import admin from django.urls import path urlpatterns = [ path('admin/', admin.site.urls), ]
实际上,该文件是为了建立URL和功能之间的关系,即路由系统。您可以尝试在浏览器中访问:8000/,这也是预设页面。
我们自己写一个路线关系:
from django.contrib import admin from django.urls import path \# 导入httpresponse from django.shortcuts import HttpResponse \#定义函数 def hello(request): return HttpResponse('hello world') urlpatterns = [ path('admin/', admin.site.urls), \# 将localhost:8000/hello 和函数hello建立联系 path('hello/', hello), ]
我们定义一个包含此功能中所有请求信息的函数。现在,我们暂时无法使用它,然后我们直接返回('')。我们可以使用要直接在页面上显示的内容。除文本外,我们还可以显示HTML标签。
然后,我们编写URL和函数的相应路径('/')。第一个参数是URL的名称,第二个参数是函数名称(不是括号)。然后,我们可以访问此页面。输入:8000/在浏览器中显示页面。
在浏览器中,我们在浏览器中输入IP,该浏览器将向服务器发送请求。该服务器通过urls.py中的路由关系找到功能,在功能中执行一系列逻辑操作,然后返回响应数据。
3。改进项目目录
在上面的示例中,我们只需返回字符页即可。在我们的实际生活中,页面更丰富。因此,我们还需要HTML页面,我们需要一些静态资源。让我们首先完成项目目录。
3.1项目目录
初始项目仅是文件夹和.py文件。实际上,我们还需要一个文件夹来存储HTML页面。此外,我们还需要一个文件夹来存储静态文件(CSS,JS,图片,文件等)。后完成目录如下:
然后,我们配置这两个目录。让我们先对其进行配置:
TEMPLATES = [ { \# 修改该行 'DIRS': [os.path.join(BASE_DIR, 'templates')], 'APP\_DIRS': True, 'OPTIONS': { 'context\_processors': [ 'django.template.context\_processors.debug', 'django.template.context\_processors.request', 'django.contrib.auth.context\_processors.auth', 'django.contrib.messages.context\_processors.messages', ], }, }, ]
我们在.py中找到了变量,并将其修改为“ dirs”:[os.path.join(,'')]。然后,让我们配置文件夹,然后直接在.py下添加以下代码:
STATICFILES_DIRS = ( \# 我们可以通过static访问静态文件 os.path.join(BASE_DIR, 'static'), )
此外,我们对一份声明发表评论:
MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', \# 注释掉 \# 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ]
3.2响应页面
在MTV模式下是我们的模板层,即MVC中的视图层。我们将HTML页面模板放在MVC中。在下面,我们创建一个简单的HTML Page.html,此页面中只有一张图片。
\ \ \ \ \Title\ \ \ \ \ \
我们看到图片的路径是//1.jpg,这不是这里的目录,而是以.py配置。配置时,您可以具有不同的名称和访问路径。我们在目录1.JPG中放了一张图片。
我们知道返回数据是在urls.py中实现的。我们输入文件:
from django.contrib import admin from django.urls import path from django.shortcuts import render def hello(request): \# 响应页面 return render(request, 'hello.html') urlpatterns = [ path('admin/', admin.site.urls), path('hello/', hello), ]
在这里,我们用来响应页面。打电话时,我们需要传递并页面名称。因为我们配备了上面的文件夹,所以只需编写.html即可。然后我们可以通过:8000/访问.html页面。
第四,知识补充
实际上,我们现在可以开发一个简单的网站,但是我们需要学习其他一些知识。
4.1对象
我们已经说过是如此的要求,但是我从未使用过。让我们看一下什么是信息。
1。请求类型
。包括请求类型信息:
request.method
2。请求参数
我们可以获取获取请求的请求参数:
request.GET.get('name')
名称是参数名称。此外,我们可以获取POST请求的请求参数:
request.POST.get('name')
4.2特殊标记
我们知道如何为用户返回静态网页,但是我们开发了动态网站以根据用户的操作实时修改数据。目前,我们需要使用特殊标记。
我们编写一个.html页面,并在文件中添加特殊标记。如果登录失败显示失败,则登录成功。
.html
\ \ \ \ \Title\ \ \ \
其中,{{name}}格式是一个特殊标记。然后,我们建立一个路由关系:
from django.contrib import admin from django.urls import path from django.shortcuts import HttpResponse, render, redirect def login(request): if 'GET' == request.method: return render(request, 'login.html') else: name = request.POST.get('username') pwd = request.POST.get('password') if 'zack' == name and '123456' == pwd: return render(request, 'login.html', {'login\_status':'success'}) else: return render(request, 'login.html', {'login\_status':'fail'}) urlpatterns = [ path('admin/', admin.site.urls), path('login/', login), ]
第一个请求是获取,直接显示页面,然后我们使用表格将数据作为帖子提交,因此我们判断了用户名和密码,并在显示页面时以字典形式传递了参数。当正确的用户名和密码输入时,将显示登录名,并且在输入错误时将显示它。
4.3矩形方向
我们上面学到的角色是向前,有时我们需要使用重定向方向。实现了重定向的实现。使用和前进类似:
return redirect('/login/')
使用重定向时,我们需要添加///。
5。开发一个简单的网站
知道上述知识后,我们可以开始开发一个简单的网站。该页面对页面不太具体,主要是功能实现。这是一个自动生成云单词的网站。
5.1 HTML页面
总共有两个页面,一个输入生成单词的信息,另一个用于显示单词云,我们首先查看第一个。
\ \ \ \ \Title\ \ \ \
因为我们想上传图片文件,所以我们必须设置=“/form-data”。
然后是显示单词云的页面:
\ \ \ \ \Title\ \ \ \ \ \
这里只有一个图片标签,资源路径是特殊标签。
5.2建立路线关系
def wc(request): pass def show(request): pass urlpatterns = [ path('admin/', admin.site.urls), \# 生成词云页面 path('wc/', wc), \# 显示词云 path('show/', show), ]
然后,让我们看一下两个主要函数的功能主体。
5.3功能主体
遗传词云:
def wc(request): if request.method == 'GET': return render(request, 'WordCloud.html') else: \# 获取用户输入的文本,并使用jieba分词 text = request.POST.get('text') word = jieba.lcut(text) text = " ".join(word) \# 上传文件 mask_file = request.FILES.get('mask') file_path = os.path.join('static', 'masks', mask_file.name) f = open(file_path, 'wb') for chunk in mask_file.chunks(): f.write(chunk) f.close() \# 读取图片成ndarray对象 im = Image.open(file_path) mask = np.array(im) \# 生成词云 wc_im = WordCloud( mask=mask ) wc_im.generate(text) \# 保存词云 file_path = os.path.join('static', 'save\_file', mask_file.name) wc_im.to_file(file_path) \# 重定向至显示页面 return redirect('/show?file\_name=' + mask_file.name)
当然,这里没有对空字符串的判断,也省略了许多功能。
显示云:
def show(request): \# wc函数中我们使用get方式传入了词云的地址 file_name = request.GET.get('file\_name') file_path = os.path.join('static', 'save\_file', file_name) return render(request, 'show.html', {'im\_url':'/'+file_path})
然后,我们的简单网站实现了。
6.云服务器上的操作网站
为了方便起见,我选择了服务器的版本。在操作过程中,仅需要上述步骤来构建环境和安装...
设置一个良好的环境后,我们也以相同的方式完成操作。开始一个项目并开始编写代码。上述在线演示如下:
遗传云
欢迎注意我的公共帐户,回复关键字“”,会有礼物!交叉路口交叉点,祝大家采访!交点交叉点