`

关于服务器——安装配置django

 
阅读更多

django是一个基于python语言的服务器框架,能够帮助我们轻易开发一个web应用,下面记录一些简单的安装使用方法。

sudo pip install Django==1.5.1

创建一个新的web服务(mysite,可以进行路由路径配置,数据库配置等)

django-admin.py startproject mysite

创建一个新的web应用(books,具体代码实现)

manage.py start app books

 

类似MVC框架,django提供model,view等模块供我们使用(不过django的model更类似于数据库定义,view类似MVC中的controller,template才是MVC中的view)编辑代码如下

books/models.py

from django.db import models

# Create your models here.
class Publisher(models.Model):
    name = models.CharField(max_length=30)
    address = models.CharField(max_length=50)
    city = models.CharField(max_length=60)
    state_province = models.CharField(max_length=30)
    country = models.CharField(max_length=50)
    website = models.URLField()

    def __unicode__(self):
        return self.name

#class Author(models.Model):
#    first_name = models.CharField(max_length=30)
#    last_name = models.CharField(max_length=40)
#    email = models.EmailField()
#
#    def __unicode__(self):
#        return u'%s %s' % (self.first_name, self.last_name)

#class Book(models.Model):
#    title = models.CharField(max_length=100)
#    authors = models.ManyToManyField(Author)
#    publisher = models.ForeignKey(Publisher)
#    publication_date = models.DateField()
#
#    def __unicode__(self):
#        return self.title

 books/views.py

# Create your views here.
from django.shortcuts import render_to_response
from books.models import Publisher

def list_publishers(request):
        publishers = Publisher.objects.all()
        return render_to_response('list_publishers.html', {'publishers': publishers})

 templates/list_publishers.html

<table>
        {% for p in publishers %}
        <tr>
        <td>Id #{{ p.id }}</td>
        <td>Name #{{ p.name }}</td>
        </tr>
        {% endfor %}
</table>

自定义配置web,设置数据库连接等

mysite/settings.py

INSTALLED_APPS = (
    'books',
)

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': '/home/ciaos/django.sqlite3',                      # Or path to database file if using sqlite3.
        # The following settings are not used with sqlite3:
        'USER': '',
        'PASSWORD': '',
        'HOST': '',                      # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP.
        'PORT': '',                      # Set to empty string for default.
    }
}

TEMPLATE_DIRS = (
    '/home/ciaos/mysite/templates',
)

mysite/urls.py(利用python强大的正则表达式配置路由)

urlpatterns = patterns('',
    # Examples:
    # url(r'^$', 'mysite.views.home', name='home'),
    # url(r'^mysite/', include('mysite.foo.urls')),

    # Uncomment the admin/doc line below to enable admin documentation:
    # url(r'^admin/doc/', include('django.contrib.admindocs.urls')),

    # Uncomment the next line to enable the admin:
    url(r'^publishers/',list_publishers)
)

python manager.py syncdb同步models到数据库

通过python manage.py shell简单操作查询数据库

运行数据库如下(如果要后台运行可以使用nohup)

python manage.py runserver

 用ab测试

ciaos@linux-53dr:~/mysite> sudo /usr/sbin/ab2 -c 10 -n 10000 http://127.0.0.1:8000/publishers/
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 127.0.0.1 (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Completed 10000 requests
Finished 10000 requests


Server Software:        WSGIServer/0.1
Server Hostname:        127.0.0.1
Server Port:            8000

Document Path:          /publishers/
Document Length:        69 bytes

Concurrency Level:      10
Time taken for tests:   49.311 seconds
Complete requests:      10000
Failed requests:        0
Write errors:           0
Total transferred:      2020000 bytes
HTML transferred:       690000 bytes
Requests per second:    202.80 [#/sec] (mean)
Time per request:       49.311 [ms] (mean)
Time per request:       4.931 [ms] (mean, across all concurrent requests)
Transfer rate:          40.00 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    2  38.6      0    1001
Processing:    22   47  82.8     36    2562
Waiting:        6   41  82.7     31    2553
Total:         22   49  91.3     36    2562

Percentage of the requests served within a certain time (ms)
  50%     36
  66%     39
  75%     41
  80%     42
  90%     52
  95%     63
  98%    100
  99%    428
 100%   2562 (longest request)

并发数据等没有参考意义,因为是在我笔记本的虚拟机上测试的,主要是与tornado服务器做对比。用django实现一个简易的web应用还是非常方便的。

分享到:
评论

相关推荐

    实用的Django项目——Django项目实践 (Practical Django Projects)

    书中详细介绍了如何搭建一个Django项目,包括创建虚拟环境、安装Django、定义项目结构、配置settings.py文件等。同时,James Bennett还讲解了Django的开发流程,如使用makemigrations和migrate命令管理数据库迁移,...

    Python高效开发实战——Django、Tornado、Flask、Twisted 的随书完整源代码

    本资源提供了四个知名Web框架——Django、Tornado、Flask和Twisted的随书完整源代码,帮助开发者深入理解和实践这些框架,提升开发效率。以下是对这四个框架的详细介绍: 1. Django:Django是一个高级的Python Web...

    udemy_django_stripe:Udemy 课程——learn-django-code-accept-payments-with-stripe

    【标题】"udemy_django_stripe:Udemy 课程——learn-django-code-accept-payments-with-stripe" 指的是一个Udemy在线课程,该课程旨在教授如何使用Django框架集成Stripe支付服务,使用户能够在网站上安全地处理在线...

    django——从博客开始

    【标题】:“django——从博客开始” 在Python的Web开发领域,Django是一个非常流行的开源框架,它以其“快速开发、清晰设计、可重用性”为核心理念。本教程将带你从零开始,通过构建一个博客系统来学习Python和...

    django 改变样式工具安装包

    配置过程包括安装mod_python、配置Apache虚拟主机以及设置Django项目的路径等步骤。 **2. Grappelli简介** Grappelli是Django管理界面(admin site)的前端框架,它提供了一套美观的皮肤,使得默认的Django管理...

    django+scrapy结合

    7. **设置URL路由**:配置Django的URL路由,使用户能够访问到启动爬虫的页面和查看结果的页面。 8. **部署和测试**:将项目部署到服务器,确保所有组件正常工作,测试启动爬虫、查看结果等功能是否顺畅。 通过以上...

    全套百度云教程:python基础+进阶+项目篇 (含Django和Tornado)

    1. **Django安装与配置**:安装Django、创建项目、配置数据库等。 2. **模型层(Model)**:定义数据模型、自定义字段、关系字段等。 3. **视图层(View)**:处理请求、返回响应、使用模板等。 4. **模板系统**:...

    django-redis组件

    首先,我们来看 `django-redis` 的核心功能——缓存后端。Django 自带的缓存系统支持多种数据库,包括 Memcached 和数据库缓存。然而,Redis 以其高速读写性能、丰富的数据结构以及分布式支持,成为了许多开发者首选...

    django 学习笔记(1)—— python和web开发框架(csdn)————程序.pdf

    在这个例子中,我们实现了简单的URL路由和模板替换,但实际的Web框架如Django提供了更高级的特性,如自动化URL配置、ORM(对象关系映射)以处理数据库操作,以及强大的模板语言,让开发者能更专注于应用逻辑而非底层...

    实验11-基于Django框架Web开发之框架基本应用.docx

    - 验证Django是否安装成功,运行`python -c "import django; print(django.get_version())"`。 2. **创建Django项目** - 进入项目创建的目录,使用命令`django-admin.py startproject projectname`创建项目,其中...

    Django——表单.doc

    3. 更新`DjangoTest/urls.py`配置,定义两个路径:`'get/'`对应`search_get`函数,展示表单页面;`'search/'`对应`search`函数,处理GET请求中的数据。 当用户访问`http://127.0.0.1:8000/get/`,他们会看到表单...

    pythonDjango-django简介、django安装、创建项目、快速上手-python django

    ### Django 安装与配置 #### 1. Conda 创建环境 使用 Conda 环境可以帮助隔离 Django 项目的依赖关系,避免不同项目间的依赖冲突。 1. **安装 Conda**:如果还未安装 Conda,可以从官网下载并安装 Anaconda 或 ...

    用Python和Django实现多用户博客系统(二)——UUBlog

    如果未安装,可以使用`pip install django`进行安装。 创建新项目: 1. 打开命令行或终端,进入你希望创建项目的目录,然后运行`django-admin startproject UUBlog`。这将创建一个名为"UUBlog"的目录,其中包含...

    The Django Book.pdf

    Django采用了MVC(Model-View-Controller)设计模式的变体——MTV(Model-Template-View)。在这个模式中,Model负责处理数据和业务逻辑,View负责处理用户的请求并将数据传递给Template,而Template则负责将数据...

    基于python+Django的管理信息系统——学生成绩管理系统.zip

    【基于Python+Django的管理信息系统——学生成绩管理系统】 Python和Django是现代Web开发中的强大组合,尤其适用于快速构建高效、可扩展的管理信息系统。在这个基于Python和Django的学生成绩管理系统中,我们可以...

    Django参考手册-新

    2. **安装与设置**:这部分会指导读者如何在本地环境中安装Django,包括依赖项的安装、环境配置以及项目和应用的创建。同时,也会涉及虚拟环境的使用和管理,确保开发环境的隔离。 3. **模型(Model)**:模型是...

    Django1.0以上版本的教材-DjangoBook2.0中文版.pdf

    ### Django 1.0以上版本教材——DjangoBook 2.0中文版解析 #### 一、概述 《DjangoBook 2.0》是一本针对Django 1.0以上版本的教材,旨在帮助读者深入理解并掌握Django框架的各个方面。这本书不仅适合初学者入门,...

    python 使用django库进行Web 开发(一)(csdn)————程序.pdf

    \n\n**Django的安装与运行**\n\n安装Django非常简单,只需要使用Python的包管理工具pip,输入`pip install django`即可。\n\n创建一个新的Django项目,可以使用`django-admin startproject project_name`命令。例如...

    用Python和Django实现多用户博客系统——UUBlog

    【标题】: "用Python和Django实现多用户博客系统——UUBlog" 在Web开发领域,Python的Django框架以其高效、安全和易于使用的特性,成为构建复杂Web应用程序的热门选择。本项目"UUBlog"就是利用Django框架构建的一个...

    Python库 | django_restql-0.3.1-py3-none-any.whl

    安装完成后,在Django项目的`settings.py`中添加`django_restql`到`INSTALLED_APPS`列表,并按照官方文档或示例代码配置和使用该库。 **应用场景** `django_restql`适用于那些需要高效、灵活的API查询接口的项目,...

Global site tag (gtag.js) - Google Analytics