创建一个动态的雾_python django创建一个属于自己的动态网站

news/2024/5/12 18:25:15/文章来源:https://blog.csdn.net/weixin_35839384/article/details/112745178
d8c4df69751ea3730fd511b903562337.png

您如何开始使用Python创建网站?好吧,你可以自己完成所有工作,并编写一个在Web服务器上运行的程序,接受页面请求并以HTML和其他资源的形式提供响应。然而,这是很多工作,那么为什么在有大量现有工具为您完成工作时会遇到麻烦呢?这些工具称为框架,它们是我们今天用来创建我们网站的东西。

Python框架

有很多Python Web框架,但这里有一些最好的:

  • Django - 我们今天要用它。它具有大量功能,但仍然易于使用。文档也非常好,所以如果你遇到困难,你将有最简单的时间来解决你的Django问题。
  • Grok - 另一个具有接近Django的功能集的框架。如果你决定不喜欢Django,这是一个很好的选择。
  • WebPy - 一个更轻量级的框架。它没有那么多的功能,虽然它确实为Reddit供电了一段时间!
  • TurboGears - 虽然以前因文档不佳而声名远播,但TurboGears在去年已大幅改善。

如果您需要其他选项,可以在Python网站上找到 更全面的列表。今天我们将在本地机器上设置Django进行开发,然后构建一个简单的博客。我们还将审查在远程Web服务器上安装它的过程。

安装Django

我们今天将在终端中完成大部分工作。这应该都适用于Mac和Linux; 但是,如果您正在运行Windows,则该过程会有所不同。如果您只编写Python,则不需要熟悉命令行,但是,如果您计划使用Django,或者一般运行动态网站,那么值得学习。

以下是安装Django所需的命令。它与Python 3不兼容,因此您需要安装2.7或更早版本才能使其运行。

wget http://www.djangoproject.com/download/1.3.1/tarball/

tar xzvf Django-1.3.1.tar.gz

cd Django-1.3.1

python setup.py install

接下来,我们可以选择删除安装文件。

cd ..

rm Django-1.3.1.tar.gz

应该这样做!我们来试试吧。

python

from django import get_version

get_version()

你应该看到'1.3.1'。如果你这样做,一切正常,Django安装在你的系统上。恭喜!我们准备开始创建我们的网站了!

建立我们的博客

我们今天要建立一个博客系统,因为它是学习基础知识的绝佳方式。首先,我们需要创建一个Django项目。

cd ~/Documents/Projects

django-admin.py startproject FirstBlog

cd FirstBlog

ls

每个这些文件做什么?

  • __init__.py告诉Python这个文件夹是一个Python包。我们在第三课中了解了这些; 它允许Python将文件夹中的所有脚本作为模块导入。
  • manage.py实际上并不是您网站的一部分; 它是一个从命令行运行的实用程序脚本。它包含一系列用于管理站点的功能。
  • settings.py包含您网站的设置。Django不使用XML文件进行配置; 一切都是Python。此文件只是一些定义站点设置的变量。
  • urls.py是将URL映射到页面的文件。例如,它可以将yourwebsite.com/about映射到“ 关于我们”页面。

Django称自己是一个MTV框架,代表模板模板视图。

应用

但是,这些文件中没有一个是自己创建的功能性网站。为此,我们需要应用程序。应用程序是您编写使您的网站运行的代码的地方,但在我们查看它们之前,我们需要了解Django的设计原则。

首先,Django是一个MVC框架,代表模型视图控制器。Django称自己是一个MTV框架,代表模板模板视图。这与MVC略有不同,但从根本上说,它们非常相似。无论如何,MVC是一种架构模式,它提供了一种构建项目的方法。它将用于处理数据的代码与管理用户界面的代码分开。

Django订阅DRY,或“不要重复自己”的理念。

其次,Django订阅了DRY,或者不重复自己的哲学,这意味着你永远不应该编写不止一次执行某项任务的代码。例如,在我们的博客中,如果我们编写了一个从存档中选择随机文章的功能,并在多个页面上实现了此功能,那么每次需要时我们都不会再对其进行编码。我们将其编码一次,然后在每个页面上使用它。

那么这与应用程序有何关系?那么,应用程序允许您以干燥的方式编写您的网站。每个项目(如我们这里的项目)都可以包含多个应用程序。相反,每个应用程序都可以是多个项目的一部分。使用前面的示例,这意味着如果我们将来创建另一个还需要随机页面功能的网站,我们就不必再将其全部写入。我们可以从这个项目中导入应用程序。因此,每个应用程序都有一个不同的用途,这一点非常重要。如果您在一个应用程序中编写了站点的所有功能,然后需要稍后再使用它的一部分,则必须全部导入。例如,如果您正在制作电子商务网站,则不希望导入所有博客功能。但是,如果您为随机功能创建一个应用程序,为博客发布系统创建一个应用程序,

这也意味着在站点内,代码组织得很好。如果要更改某个功能,则不必搜索一个大型文件; 您可以改为浏览相关应用并进行更改,而无需担心干扰其他任何内容。

python mangage.py startapp blog

cd blog

ls

同样,我们有一个__init__.py文件使它成为一个包,还有另外三个文件:模型,测试和视图。我们现在不需要担心测试,但其他两个很重要。模型和视图是M和VMVC的部分。

在模型中,我们定义了数据结构。

如果您曾经使用过PHP,那么您可能已经使用PhpMyAdmin来创建MySQL表,然后在PHP脚本中手动编写SQL查询。在Django中,它更容易。我们在这个模型文件中定义了我们需要的所有数据结构,然后运行一个命令,并为我们制作了所有必要的数据库。

当您希望访问该数据时,可以通过调用方法来访问这些模型,而不是运行原始查询。这非常有用,因为Django可以使用多个数据库程序。我们今天将使用MySQL,因为它是最强大的,并且是大多数主机提供的,但如果我们将来需要切换到不同的数据库,所有代码仍然有效!在其他语言中,如果要切换到SQLite或类似的东西,则需要重写访问数据库的代码。

在视图文件中,我们编写实际生成网页的代码。这将所有其他部分联系在一起。当用户键入URL时,它由urls我们之前看到的脚本发送到views脚本,脚本然后从模型中获取相关数据,处理它并将其传递到模板中,最终将其作为用户看到的页面提供。 。我们很快就会看一下这些模板。它们是最容易的部分 - 主要是HTML。

对于博客,我们需要一个帖子表,其中包含标题,正文,作者,写作时间等几个字段。一个真正的博客会有评论,但这超出了今天的演示范围。

from django.db import models

class posts(models.Model):

author = models.CharField(max_length = 30)

title = models.CharField(max_length = 100)

bodytext = models.TextField()

timestamp = models.DateTimeField()

MySQL的

这些模型只是一个描述。我们需要从中创建一个实际的数据库。首先,我们需要在我们的系统上运行MySQL。在实际的Web服务器上,这不是问题,因为它们通常会预先安装它。幸运的是,使用包管理器,它很容易安装。首先,您需要安装Homebrew和Easy Install

brew install mysql

easy_install mysql-python

mysqld_safe --skip-grant-tables #let anyone have full permissions

mysql -u root

UPDATE mysql.user SET Password=PASSWORD('nettuts') WHERE User='root'; #give the user 'root' a password

FLUSH PRIVILEGES;

mysql -u root -p #log in with our password 'nettuts'

CREATE DATABASE firstblog;

quit

python2.6 manage.py runserver

当您重新启动时,MySQL将不会运行,因此每次您需要在将来执行此操作时,请运行mysqld以启动服务器。然后python2.6 manange.py runserver,您可以在新选项卡中运行以启动开发服务器。

此命令不会运行服务器,它只会返回错误。那是因为我们需要配置我们的设置。我们来看看吧settings.py。

您需要先更改数据库设置。这些从第12行开始。

DATABASES = {

'default': {

'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.

'NAME': 'firstblog', # Or path to database file if using sqlite3.

'USER': 'root', # Not used with sqlite3.

'PASSWORD': 'nettuts', # Not used with sqlite3.

'HOST': '', # Set to empty string for localhost. Not used with sqlite3.

'PORT': '', # Set to empty string for default. Not used with sqlite3.

}

}

如果您尝试再次运行服务器,它应该可以工作,只要您成功安装了MySQL。如果您127.0.0.1:8000在Web浏览器中访问,则应该会看到默认的Django页面。

现在让我们将我们的Django网站变成一个博客。首先,我们需要使用我们的模型通过运行以下命令在数据库中创建表:

python2.6 manage.py syncdb

每次更改模型时,都应运行此命令以更新数据库。请注意,这不能改变现有字段; 它可能只会添加新的。因此,如果要删除字段,则必须使用PhpMyAdmin等手动执行此操作。因为这是我们第一次运行该命令,所以Django将为管理系统之类的东西设置所有默认的内置表。只需输入“是”,然后填写您的详细信息。

现在让我们设置urls.py文件。取消注释示例部分中的第一行,并将其更改为say url(r'^$', 'FirstBlog.blog.views.home', name='home') 。

现在,让我们创建视图文件来响应这些请求。

from django.shortcuts import render_to_response

from blog.models import posts

def home(request):

return render_to_response('index.html')

模板

这个index.html文件还不存在,所以让我们来做吧。在blog应用程序中创建一个名为templates的文件夹,并在其中保存一个名为的文件index.html,暂时只能包含“Hello World”。然后,我们需要编辑设置文件,以便Django知道此模板的位置。

第105行是用于声明模板文件夹的部分的开始位置; 所以调整它,如下:

TEMPLATE_DIRS = (

"blog/templates

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_754461.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

help.hybris.com和help.sap.com网站的搜索实现

help.hybris.com 我使用help.hybris.com时,发现每次在搜索栏输入文字时,没有发出任何HTTP请求,那么这个自动完成的下拉框里的记录从哪里来的?我看了下实现,发现所有自动完成下拉框里的记录都是硬编码在searchsuggestio…

自建网站对接微信公众号

title: 自建网站对接微信公众号date: 2018-04-12 15:25tags: 微信公众号,PHPcodeignitercategories: 技术 平常我们有些写各种网站, 个人博客系统, 物流管理系统, 通信录管理系统, 校园二手网站. 我们都知道, 只需要租用一个服务器, 再配置一个备案好的域名, 就可以在浏览器上进…

用VS2012建立core2.1网站项目后引用Microsoft.AspNetCore.Session不了

用VS2012建立core2.1网站项目后引用Microsoft.AspNetCore.Session不了 做个.NET CORE的新项目,和往常一样,VS2017新建CORE项目(CORE2.1),NUGET引入session,结果引入不了,说什么版本不对应的&…

hwpfdocument 获取第一页内容_浅谈:网站文章内容页的SEO排名技巧!

优化SEO的目的是获取搜索引擎的流量,但是在SEO执行过程中需要逐步循环,确保了SEO方案的可行性和SEO过程的可控性。为了引流目的反推SEO流程,获得搜索引擎流量需要关键词排名,获得关键词排名必须首先保证网站的收录。思维浅析对于新…

《机器学习与数据科学(基于R的统计学习方法)》——2.9 从网站中抓取数据...

本节书摘来异步社区《机器学习与数据科学(基于R的统计学习方法)》一书中的第2章,第2.9节,作者:【美】Daniel D. Gutierrez(古铁雷斯),更多章节内容可以访问云栖社区“异步社区”公众…

html怎么发布站点地图,新手如何掌握制作和提交网站地图?

网站地图作为根据网站的结构,框架,内容生成的导航网页文件。大多数人都知道网站地图对于提高用户体验有好处:它们为网站访问者指明方向,并帮助迷失的访问者找到他们想看的页面。那么什么是网站地图呢?在开始介绍网站地图的制作与…

利用dns解析来实现网站的负载均衡

当网站的访问量大了就会考虑负载均衡,这也是每一个架构师的基本功了,其基本地位就相当于相声里的说学逗唱,活好不好就看这个了 :)传统的负载均衡思路是单点的,不管你是硬件的还是软件的基本都是这样的原理对于一般的需求来说&…

给网站添加谷歌验证(我不是机器人)

2019独角兽企业重金招聘Python工程师标准>>> 1、去谷歌网站。(如果没有谷歌gmail,也许还要注册gmail并登陆) https://www.google.com/recaptcha/admin#list 2、注册要验证的网站。 Label中随意填写个标签。Choose the type of reCAPTCHA中选择验证类型。第一个是网站…

峰任策划:如何将网站推广做的更有效果

随着互联网的高速发展,互联网行业的竞争也是愈演愈烈。众多的中小企业也纷纷加入网络营销的行列中,建立起属于自家企业的网站,建立起以企业网站为核心的网络推广模式。那么如何来推广自己的网站,如何做好网站推广,目前…

十周后,62%的PHP网站将运行在一个不受支持的PHP版本上

根据W3Techs的统计数据,目前约有78.9%的网站使用PHP开发。\\但是,PHP 5.6.x的安全支持将在2018年12月31日正式停止,这标志着对古老的PHP 5.x分支版本的支持都将结束。\\也就是说,从明年开始,大约62&#xf…

你的网站会投放这样的广告么?

我震惊了,钱要赚,但为了公司名誉以及社会影响,就算是广告,能不能有个底线的啊?

无懈可击的Web设计:使用HTML 5和CSS 3提高网站的灵活性与适应性(第3版)

《无懈可击的Web设计:使用HTML 5和CSS 3提高网站的灵活性与适应性(第3版)》基本信息原书名:Bulletproof Web Design:Improving flexibility and protecting against worst-case scenarios with HTML5 and CSS3, Third Edition 原出版社: New …

电商网站中购物车功能模块完善

主要有两方面的问题: 1、登录状态下添加商品到购物车 此时购物车是对应一个用户,很简单,就是将商品的数据插入数据库中即可,但是如果读写频繁的时候,就存在压力问题,此时我们可以使用Redis担任读的部分功能…

thinkphp5项目--企业单车网站(八)(文章板块要点)(删除图片)

thinkphp5项目--企业单车网站(八)(文章板块要点)(删除图片) 项目地址 fry404006308/BicycleEnterpriseWebsite: Bicycle Enterprise Websitehttps://github.com/fry404006308/BicycleEnterpriseWebsite 一、…

云计算及其对您的SEO的影响

云计算及其对您的SEO的影响 互联网对商业世界的影响不容低估,经常使用“革命化”和“提升”等词语来描述当前的气候。过去三十年来,企业逐渐适应互联网,并在网上开展越来越多的业务。互联网技术的进步使得企业竞相跟上,以便他们能…

网站另类推广玩法心得

互联网营销,越来越多的个人或是企业希望通过网上营销将自己的产品或服务推广出去,但是这些站的具体运营呢,多数仅仅停留在把站做起来,而没有太好的推广手段,而如何有访问呢?人们首先想到的就是 SEO,因为通…

HTML易烊千玺网页,易烊千玺弟弟破世界纪录,被扒两天就被人打破,认证网站遭质疑...

近日,世界纪录认证WRCA网站宣布易烊千玺的弟弟易烊昱华成功创造了一个新的世界纪录。在今年八月,易烊昱华以1分50秒66的成绩完成了2个二阶魔方的还原,是世界上完成这个挑战的最小年龄纪录保持者。易烊千玺的亲弟弟虽然还只是一个素人&#xf…

服务器稳定性和seo有什么区别,服务器稳定性对seo有那些帮助

原标题:服务器稳定性对seo有那些帮助一、网站经常性打不开,流量损失大经过努力SEO优化之后,很多关键词都优化上来了,但是用户进来之后发现网站打不开,于是随手就关掉了,一个个精准的流量就这样白白损失掉了…

服务器做网站空间,服务器做网站空间

服务器做网站空间 内容精选换一换本节介绍使用华为云Web应用防火墙(Web Application Firewall,WAF)保护Web服务,且网站域名解析至中国大陆节点服务器的备案场景。如图1所示。① 企业将网站域名(www.example.com)添加至WAF控制台,接入WAF&…

网站攻防之CSRF和XSS跨站脚本攻击

进入正题之前,先扯一番:黑客本义并非某些人以为的利用网络干坏事的人,刚开始或者说现在的很多,黑客是以技术大牛的形式存在的,也就是在网络领域有一门专场的牛人。有些黑客不干坏事而是干好事,比如利用网站…