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

时间:2022-09-02 13:53:23

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

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

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

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

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

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

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

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

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

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

创建 Django 项目

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

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

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

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

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

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

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

创建虚拟环境

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

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

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

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

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

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

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

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

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

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

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

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

现在,您已在自己的虚拟环境中为 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实现

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

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

设置 Django 管理站点

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

Python manage.py createsuperuser

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

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

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

·   首先,将 '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”

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

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

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

创建博客文章

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

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

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

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

创建首篇博客文章并保存

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

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

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

现在您已基本了解了在 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

在 Windows Azure 网站上使用 Django、Python 和 MySQL:创建博客应用程序的更多相关文章

  1. Windows Azure 网站上的 WebSocket 简介

    编辑人员注释:本文章由 Windows Azure 网站团队的首席项目经理 Stefan Schackow 撰写. Windows Azure 网站最近新增了对 WebSocket 协议的支持..NE ...

  2. Windows Azure 网站上的 WordPress 3&period;8

     编辑人员注释:本文章由 Windows Azure 网站团队的项目经理 Sunitha Muthukrishna 和 Windows Azure 网站开发人员体验合作伙伴共同撰写. WordPr ...

  3. 删除 Windows Azure 网站上的标准服务器头

    编辑人员注释: 本文章由 Windows Azure 网站团队的项目经理 Erez Benari 撰写. 请求和响应中包含的 HTTP 头是Web 服务器和浏览器之间的 HTTP 通信过程的一部分.例 ...

  4. 在 Windows Azure 网站 &lpar;WAWS&rpar; 上对 Orchard CMS 使用 Azure 缓存

    编辑人员注释: 本文章由 Windows Azure 网站团队的项目经理 Sunitha Muthukrishna 撰写. 如果您当前的 OrchardCMS 网站在 Windows Azure 网站 ...

  5. Windows Azure 网站:应用程序字符串和连接字符串的工作原理

    编辑人员注释:本文章由 Windows Azure 网站团队的首席项目经理 Stefan Schackow 撰写. Windows Azure 网站上有一个方便的功能,即开发人员可将 Azure 中的 ...

  6. Azure 网站上的 Java

     编辑人员注释:本文章由Windows Azure 网站团队的项目经理Chris Compy 撰写. Microsoft 已推出针对 Azure 网站上基于 Java 的网站的支持.此功能旨在通过 ...

  7. Windows Azure 网站 &lpar;WAWS&rpar; 中的服务器端包含 &lpar;SSI&rpar;

     编辑人员注释:本文章由 Windows Azure 网站团队的项目经理Erez Benari 撰写. Windows Azure 网站客户普遍关心的一个问题是关于我们对服务器端包含(Server ...

  8. 使用 IIS Manager 对 Windows Azure 网站进行远程管理

     最近,我们为客户新增了使用 Windows自带的 IIS管理控制台管理 Azure网站的功能.IIS Manager支持 HTTP over SSL,提供到您的 Windows Azure 网站 ...

  9. 最佳实践:Windows Azure 网站 &lpar;WAWS&rpar;

     编辑人员注释:本文章由 Windows Azure 网站团队的项目经理Sunitha Muthukrishna 撰写. Windows Azure 网站 (WAWS) 允许您在 Windows ...

随机推荐

  1. 简单的学习心得:网易云课堂Android开发第六章SQLite与ContentProvider

    一.SQLite 1.基本操作: (1)创建数据库:在SQLiteOpenHelper的子类构造器中创建. (2)创建表:在SQLiteOpenHelper的子类onCreate方法中,调用execS ...

  2. React Native知识8-WebView组件

    创建一个原生的WebView,可以用于访问一个网页.可以加载一个URL也可以加载一段html代码: 一:属性 1:iosallowsInlineMediaPlayback bool 指定HTML5视频 ...

  3. jQuery框架分析第一章&colon; 第一个匿名函数

    我的jQuery版本为1.7* 这个版本代码比之前的版本优化了很多,结构也清晰了不少,就用最新的吧. 打开jQuery源代码 首先你能看到所有代码被一个 (function(window,undefi ...

  4. 【转】Xamarin Forms 介绍

    特此声明,本篇博文转自:http://blog.csdn.net/kinfey/article/details/29621381 什么是 Xamarin Forms ? Xamarin Forms 是 ...

  5. 【CodeForces 614A】Link&sol;Cut Tree

    题 题意 给你一个区间,求里面有多少个数是k的次方. 分析 暴力,但是要注意这题范围会爆long long,当k=1e8: l=1:r=1e18时 k²=1e16,判断了是≤r,然后输出,再乘k就是1 ...

  6. vim tab 和4个空格

    在.vimrc中添加以下代码后,重启vim即可实现按TAB产生4个空格:set ts=4  (注:ts是tabstop的缩写,设TAB宽4个空格)set expandtab 对于已保存的文件,可以使用 ...

  7. 前端之旅HTML与CSS篇之自己总结的关于居中的方法

    1.text-align:center  :在父容器里水平居中 inline 文字,或 inline 元素 2.line-height  与 height 相等时,垂直居中文字(文字垂直水平居中,同时 ...

  8. Python之路【目录】

    https://www.cnblogs.com/wupeiqi/articles/4938499.html

  9. C&num;实现给图片加边框的方法

    Bitmap bit= new Bitmap(@"" + Path);//给图片加边框 //Bitmap bit = new Bitmap(Screen.AllScreens[0] ...

  10. c&sol;c&plus;&plus; 智能指针 unique&lowbar;ptr 使用

    智能指针 unique_ptr 使用 和shared_ptr不同,可以有多个shared_ptr指向同一个内存,只能有1个unique_ptr指向某个内存.因此unique_ptr不支持普通的拷贝和赋 ...