在 Windows Azure 网站上使用 Django、Python 和 MySQL:创建博客应用程序

news/2024/5/20 11:32:00/文章来源:https://blog.csdn.net/weixin_30328063/article/details/98755230

编辑人员注释:本文章由 Windows Azure 网站团队的项目经理 Sunitha Muthukrishna 撰写。

根据您编写的应用程序,Windows Azure 网站上的基本Python 堆栈可能完全满足您的需求,也可能不包括您的应用程序所需的所有模块或库。

不用担心,在此博客文章中,我将详细介绍使用Virtualenv适用于 Visual Studio Python 工具为您的应用程序创建 Python 环境的步骤。与此同时,我还将介绍如何将基于 Django 的站点发布到 Windows Azure 网站上。

使用 MySQL 数据库创建 Windows Azure 网站

现在,登录 Azure 管理门户,使用 Custom create 选项创建一个新网站。有关详细信息,请参阅如何创建 Azure 网站。我们将使用 MySQL 数据库创建一个空网站。

最后选择地区,在选择接受网站条款之后,即可完成安装。像往常一样,建议您将数据库放在与网站相同的地区,以降低成本。

在管理门户中双击您的网站即可查看网站的仪表板。单击“Download publish profile”。此时将下载 .publishsettings 文件,此文件可用于在 Visual Studio 中部署。

创建 Django 项目

在本教程中,我们将使用 Visual Studio 来构建 Django Web 应用程序。要使用 Visual Studio 构建应用程序,请安装 PTVS 2.0。有关详细信息,请参阅如何使用 Visual Studio 构建 Django 应用程序

打开 Visual Studio 并创建一个新项目,方法是依次单击 New Project > Other Languages > Python > DjangoProject

在解决方案资源管理器中,为您的 Django 项目创建一个新的 Django 应用程序,方法是右键单击 DjangoProject > Add > DjangoApp

输入 Django 应用程序的名称,例如 myblog

创建虚拟环境

简单地说,可以通过 virtualenv 创建自定义的隔离 Python 环境。也就是说,您可以自定义并安装不同的包,而不影响网站的其余部分,因此此环境也可以用于进行实验。

在解决方案资源管理器中,右键单击 Django 项目中的 Python Environments,然后选择“Add Virtual Environment”

输入虚拟环境名称,例如“env”。这将创建名为“env”的文件夹,其中包含您的虚拟 Python 环境,但不包含任何pip 以外的 Python包

在虚拟环境中安装 MySQL-Python 和 Django 包

在解决方案资源管理器中,右键单击环境 env 并安装 Python 包:django

您可以在虚拟环境中查看 Django 安装的输出

同样,您需要安装 mysql-python,但请使用 easy_install,而不是此处所示的 pip

现在,您已在自己的虚拟环境中为 Python 安装了 Django 和 MySQL

构建数据库模型

Django 中的模型是继承自 Django Model类的类,用于指定特定对象的所有属性。模型类将其属性转换为存储在数据库中的值。

现在我们创建一个名为 Post 的简单模型,其中包含titledate body 这三个字段,以在数据库中构建 post 表。要创建模型,将 models.py 文件添加到 myblog/ 文件夹下。

#import from Model class

from django.db import models

class Post(models.Model):

 #Create a title property

    title =models.CharField(max_length=64)

#Create a date property

    date =models.DateTimeField()   

#Create a body of content property

    body = models.TextField()

# This method is just like toString() function in.NET.Whenever Python needs to show a

#string representation of an object, it calls __str__

    def __str__(self):

        return"%s " % (self.title)

安装模型

我们将需要通知 Django 在数据库中创建模型。为此,我们还需要执行以下几个操作:

·   首先,我们将在 settings.py 中配置应用程序的数据库。输入与 Windows Azure 网站关联的 MySQL 数据库信息。

DATABASES = {

    'default': {

       'ENGINE':'django.db.backends.mysql',

        'NAME':'MYSQL-DATABASE-NAME',                     

       'USER':'MYSQL-SERVER-USER-NAME',                     

       'PASSWORD':'MYSQL-SERVER-USER-PASSWORD',                 

       'HOST':'MySQL-SERVER-NAME',                     

        'PORT': '',

    }

}    

接下来,将您的应用程序添加到 settings.py中的 INSTALLED_APPS 设置。

INSTALLED_APPS = (

    'django.contrib.auth',

    'django.contrib.contenttypes',

    'django.contrib.sessions',

    'django.contrib.sites',

    'django.contrib.messages',

   'django.contrib.staticfiles',  

    'myblog',

    )

·   将设置保存在 settings.py 中之后,我们将在您的 Clear DB 数据库中为已添加到 models.py 的模型创建架构。这可以通过运行 Django Sync DB实现

您可以自己编写代码来管理博客中文章的创建、编辑、删除,或者使用 Django 提供的管理模块,此模块提供了用于创建和管理文章的管理站点仪表板。有关如何启用 Django 管理站点的信息,请参阅这篇文章

设置 Django 管理站点

管理站点将提供用于创建和管理博客文章的仪表板。首先,我们需要创建能够访问管理站点的超级用户。为此,如果您尚未创建管理用户,请运行以下命令。

Python manage.py createsuperuser

您可以使用 Django Shell 运行此命令。有关如何使用 Django Shell 的更多详细信息,请参阅这篇文章

 

默认情况下,管理模块未启用,因此我们需要执行以下几个步骤:

·   首先,将 'django.contrib.admin' 添加到 settings.py 中的 INSTALLED_APPS设置

INSTALLED_APPS = (

    'django.contrib.auth',

    'django.contrib.contenttypes',

    'django.contrib.sessions',

    'django.contrib.sites',

    'django.contrib.messages',

   'django.contrib.staticfiles',  

    'myblog',

    )

·   现在,更新 urls.py,以处理应用程序对管理站点以及对主页视图的请求。

from django.conf.urls import patterns, include, url

#import admin module

from django.contrib import admin

admin.autodiscover()

#set url patterns to handle requests made to yourapplication 

urlpatterns = patterns('',

     url(r'^$','DjangoApplication.views.home', name='home'),           

     url(r'^admin/',include(admin.site.urls)),

)

·   接下来,我们在 myblog/ 文件夹下创建 admin.py 以注册 Post 模型

from models import Post

from django.contrib import admin

#Register the database model so it will be visible in theAdmin site

admin.site.register(Post)

构建页面视图

我们将创建页面视图以列出您已创建的所有博客文章。要创建页面视图,请将 views.py 文件添加到 myblog/ 文件夹下

from django.shortcuts import render_to_response

from models import Post

#Creating a view for the home page

def home(request):

   posts = Post.objects.all()

   #Renders a given template with a givencontext dictionary and

returns an

   #HttpResponse object with that renderedtext.

   return render_to_response('home.html',{'posts':posts} )

显示 Post 对象对用户的帮助不大,我们需要信息更丰富的页面来显示文章列表。这种情况下将需要使用模板。通常,模板用于生成 HTML,但是 Django 模板同样能够生成任何基于文本的格式。   

要创建此模板,首先需要在 myblog/ 下创建名为 templates 的目录。要在 views.py 中显示所有文章,请在 templates/ 文件夹下创建 home.html,它将遍历并显示所有 Post 对象。

<html>

 <head><title>MyBlog</title></head>

 <body>

   <h1>My Blog</h1>

{% for post in posts %}

<h1>{{ post.title }}</h1>   

<em> <time datetime="{{ post.date.isoformat}}">

{{ post.date}}</time> <br/>

</em> 

<p>{{ post.body }}</p>

 {% endfor %} 

 </body>

</html>

设置静态目录路径

如果此时访问管理站点,您将发现样式表已损坏。这是因为没有为应用程序配置静态目录。

请将静态根文件夹路径设置为 D:\home\site\wwwroot\static

from os import path

PROJECT_ROOT =path.dirname(path.abspath(path.dirname(__file__)))

STATIC_ROOT = path.join(PROJECT_ROOT,'static').replace('\\','/')

 

STATIC_URL = '/static/'

将这些更改保存到 settings.py 中之后,运行此命令以使用 Django Shell 将所有静态文件收集到管理站点的“static”文件夹中

   Python manage.pycollectstatic

设置模板目录路径

马上就大功告成了!Django 要求在 settings.py 中配置模板目录和静态文件夹目录的路径。请参照以下几个步骤来执行此操作。

·   为 SITE_ROOT 的路径创建一个变量

import os.path

SITE_ROOT = os.path.dirname(__file__)

·   之后,我们将设置 Templates 文件夹的路径。在发出请求时,TEMPLATES_DIR 会通知 Django 在哪里查找应用程序的模板。

TEMPLATE_DIRS = (

   os.path.join(SITE_ROOT,"templates"),)

部署应用程序

现在我们已准备好将应用程序部署到 Windows Azure 网站 mydjangoblog右键单击 DjangoProject 并选择“Publish”

您可以验证连接,然后单击 Publish 以启动部署。成功完成部署后,即可浏览网站以创建首个博客。

创建博客文章

要创建博客,请使用先前创建的超级用户凭据登录管理站点 http://mydjangoblog.azurewebsites.net/admin

仪表板将包括模型的链接,并可用于管理应用程序所用模型的内容。单击 Posts

创建首篇博客文章并保存

浏览网站主页,查看新创建的文章。

现在您已基本了解了在 Windows Azure 网站上使用 Python 构建所需内容的步骤。祝您编码愉快 :)

进一步阅读

Django 项目

适用于 Visual Studio 的 Python 工具 Wiki

适用于 Visual Studio 的 Python 工具的视频教程

Windows Azure 网站 (WAWS)

本文翻译自:

http://blogs.msdn.com/b/windowsazure/archive/2013/12/17/using-django-python-and-mysql-on-windows-azure-web-sites-creating-a-blog-application.aspx

转载于:https://www.cnblogs.com/new0801/p/6176314.html

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

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

相关文章

数据量大的sql怎么做优化_网站SEO优化推广怎么做?

网站优化seo怎么做?网站优化是为了进步搜索引擎排名&#xff0c;因此网站优化奉行短长常紧张的一件事&#xff0c;需求我们(水点石穿的坚持去做&#xff0c;那么网站优化奉行seo该当怎么做呢?底下小编来报告你网站优化seo怎么做。1、关节词定位这是举行搜索引擎优化优化非常紧…

python自动填写网页数据并提交_python实现问卷星网站的自动填写

因为有一个课程要求进行调查数据的统计&#xff0c;而且小组里选用的是问卷星为平台&#xff0c;问题的形式比较单一&#xff0c;都为单选或多选&#xff0c;于是想到了用python实现一个脚本来代替小组里大家的手动填写。。 大体上使用的就是pythonSeleniumPILTesseract Seleni…

type=radio增加onclick没有效果_博客外链做seo到底还有效果吗

近日有部分站长针对博客留言外链是否有用发起了讨论&#xff0c;就博客外链是否可以给自己网站带来&#xff0c;传递权重&#xff0c;增加曝光&#xff0c;增加流量等问题站长们都发表了自己经验范围内的各种看法!大体分为两部分&#xff1a;一部分认为博客留言外链无法传递权重…

Window.print()打印整个网站中的部分内容,打印后,原网页保持不变

想要达到打印整个网站中的部分内容且完成打印后原网页保持不变的效果&#xff0c;搜到以下资料&#xff1a;window.print打印指定网页区域的方法JavaScript页面打印&#xff08;只打印指定部分&#xff09;JS打印指定页面且去样式后的内容&#xff0c;window.print都能达到打印…

java网站模版 Bootstrap HTML5 企业源码

获取【下载地址】 【免费支持更新】三大数据库 mysql oracle sqlsever 更专业、更强悍、适合不同用户群体【新录针对本系统的视频教程&#xff0c;手把手教开发一个模块&#xff0c;快速掌握本系统】A 集成代码生成器 [正反双向(单表、主表、明细表、树形表&#xff0c…

SEOer未来发展的两个方向

闲言碎语不多讲了&#xff0c;今天的话题是一位朋友提出来的&#xff1a;“老师&#xff0c;百度近期做了这么多调整&#xff0c;SEO的春天来了还是冬天来了呢?现在学习SEO的话&#xff0c;应该向哪个方向发展呢?”这段时间百度确实压力不小&#xff0c;先是“魏则西事件”迫…

lamp服务器硬件,配置LAMP服务器网站架构

配置LAMP服务器网站架构LAMP指的Linux(操作系统)、ApacheHTTP 服务器&#xff0c;MySQL(有时也指MariaDB&#xff0c;数据库软件) 和PHP(有时也是指Perl或Python) 的第一个字母&#xff0c;一般用来建立web应用平台。结构拓扑httpd服务器配置安装环境yum install httpd -y修改h…

推荐一个ASP.NET网站内容管理系统源码

许多人都有各自的兴趣&#xff0c;如打球、踢毽子、看书、看电视、玩游戏等等....我近来迷上了猜灯谜&#xff0c;于是业余做了一个在线猜灯谜的网站&#xff1a;何问起谜语。先出个谜语让你猜猜&#xff1a;不可缺一点&#xff08;打一字&#xff09;。可以在线猜&#xff1a;…

中国开发者如何更便捷地浏览Google开发者网站?

作者&#xff1a;陈卓&#xff0c;Google 开发技术推广工程师在 2016 年 12 月份举行的 Google 开发者大会上&#xff0c;Google 发布了几个谷歌开发者中国网站&#xff0c;帮助中国的开发者们更方便地访问 Google 技术文档资源、学习相关 Google 技术。为了帮助读者们更加方便…

像淘宝、京东这样的大型电商网站服务器构架完全部署方案

任何一个大型网站都是经历用户积累然后成长&#xff0c;从一台服务器到多台服务器才能构架支撑网站现有数据、用户、页面请求等。大型网站(如淘宝、京东等)的系统架构并不是开始设计就具备完整的高性能、高可用、安全等特性&#xff0c;它总是随着用户量的增加&#xff0c;业务…

又闹事!伊拉克黑客Pro_Mast3r纂改了特朗普竞选网站的子域名

本文讲的是又闹事&#xff01;伊拉克黑客Pro_Mast3r纂改了特朗普竞选网站的子域名&#xff0c;特朗普自从参与竞选以来&#xff0c;一直话题不断&#xff0c;尤其是有关网络安全的话题更是令人不安。近日又有报道称&#xff0c;一个来自伊拉克的黑客组织“Pro_Mast3r”于上周日…

基于Yahoo网站性能优化的34条军规及自己的见解

1、尽量减少HTTP请求次数 终端用户响应的时间中&#xff0c;有80%用于下载各项内容&#xff0c;这部分时间包括下载页面中的图像、样式表、脚本、Flash等。通过减少页面中的元素可以减少HTTP请求的次数&#xff0c;这是提高网页速度的关键步骤。 减少页面组件的方法其实就是简化…

【网站建设】搭建简单动态网站

2019独角兽企业重金招聘Python工程师标准>>> 课程介绍 通过前面Clouder课程的学习&#xff0c;或许你已经掌握了在云服务器上发布和部署静态网页的方法&#xff0c;那么如何搭建一个可以随时更新内容的动态网站&#xff1f;通过本课程的学习&#xff0c;你将掌握如何…

大型网站架构演变和知识体系

转载&#xff1a;http://www.blogjava.net/BlueDavy/archive/2008/09/03/226749.html 大型网站架构演变和知识体系 之前也有一些介绍大型网站架构演变的文章&#xff0c;例如LiveJournal的、ebay的&#xff0c;都是非常值得参考的&#xff0c;不过感觉他们讲的更多的是每次演变…

日志处理实战:一个外卖网站解决方案(持续更新中)

背景 “我要点外卖“是一个平台型电商网站&#xff0c;用户、餐厅、配送员等。用户可以在网页、App、微信、支付宝等进行下单点菜&#xff1b;商家拿到订单后开始加工&#xff0c;并自动通知周围的快递员&#xff1b;快递员将外卖送到用户手中。 在运营的过程中&#xff0c;发现…

深度学习驱动智能搜索引擎,RankBrain革了SEO的命

去年开始&#xff0c;谷歌使用以深度学习为基础的人工智能核心搜索算法RankBrain&#xff0c;用越来越“类人化”的算法个性定制每个搜索结果。 【编者按】本文由新智元编译&#xff0c;来源&#xff1a;techcrunch&#xff0c;作者&#xff1a;John Rampton&#xff0c;译者&…

C#ASP.NET打包安装部署文件一键安装网站,包括IIS站点创建、数据库附加。

最近在开发web网站安装部署&#xff0c;以前从来没有做过web的安装打包没有头绪就开始上网查资料。 查了两天资料发现网上的资料要么不全要么就有错误&#xff0c;我就总结了网上的资料重新整理的一番&#xff0c;经过本人测试可用无错误 一下为借鉴部分资料的原文地址 此链接为…

服务器的购买与网站的创建

服务器的购买、配置、以及网站的搭建本文提供全流程&#xff0c;中文翻译。 Chinar 坚持将简单的生活方式&#xff0c;带给世人&#xff01;&#xff08;拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例&#xff09; Chinar —— 心分享、心创新&#xff01;…

网站攻防

1.创建实验后&#xff0c;打开实验网址&#xff1a;192.168.5.13&#xff0c;界面如下&#xff1a; 2.通过在网址后添加常用的后台指令来尝试是否能进入后台&#xff0c;如admin、admin.php等&#xff1a; 3.从上一步可以看出&#xff0c;无法通过admin等方式进入后台&#xff…

.net发布网站步骤

本文章分为三个部分: web网站发布、IIS6 安装方法、ASP.NET v4.0 安装方法 一、web网站发布 1.打开 Visual Studio 2013 编译环境 2.在其解决方案上右击弹出重新生成解决方案,以查看是否有错误 3.如果项目没有错误右击WebUI层发布 4.这样将会看到以下界面 5.在配置文件中新建配…