Django基础+优化

本文详细介绍了Django的基本概念和使用,包括模型设计、视图处理、模板渲染以及URL路由。同时,深入探讨了Django的缓存机制、数据库优化策略、静态文件处理和性能监控,旨在帮助开发者提升Django应用的性能和效率。
摘要由CSDN通过智能技术生成

https://docs.djangoproject.com/en/1.4/
Django系统搭建
一. 建立一个pydjango的项目
   初始的项目包括根目录的manage.py,以及一个以project name命名的文件夹(包含settings.py, urls.py,和一个wsgi.py)
   如果project包含多个app,那么应该建立多个包,然后在每个包创建自己的urls设置和models,然后建立一个总的urls转发到各app的url中。

二、修改settings.py
     1. 数据库连接
          DATABASES = {
               'default': {
                    'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
                    'NAME': 'blogdemo',                      # Or path to database file if using sqlite3.
                    'USER': 'root',                      # Not used with sqlite3.
                    'PASSWORD': '111111',                  # Not used with sqlite3.
                    'HOST': '127.0.0.1',                      # Set to empty string for localhost. Not used with sqlite3.
                    'PORT': '3306',                      # Set to empty string for default. Not used with sqlite3.
               }
          }
     2. 时区和语言
          TIME_ZONE='Asia/Beijing'
          LANGUAGE_CODE='zh-cn'
     3.模板目录
          TEMPLATE_DIRS = (
          # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
          # Always use forward slashes, even on Windows.
          # Don't forget to use absolute paths, not relative paths.
          os.path.join(os.path.dirname(__file__), 'template').replace('\\','/'),
          '.',
          )
     4. 支持的app
          支持的app 注意包的路径.如果model没在这里注册的话,那么将syncdb则无法自动生成表
          INSTALLED_APPS = (
          'django.contrib.auth',
          'django.contrib.contenttypes',
          'django.contrib.sessions',
          'django.contrib.sites',
          'django.contrib.messages',
          'django.contrib.staticfiles',
          'django.contrib.admin',
          'django.contrib.admindocs',
          #上边的都是默认的
          'blogdemo',
          )
     5. media路径:保存媒体文件的路径(上传的文件保存路径等等)
          HERE = os.path.dirname(os.path.abspath(__file__))
          MEDIA_ROOT = os.path.join(HERE, 'media/').replace('\\','/')
          MEDIA_URL = '/media/
     6. 静态文件路径:css,js,image等等
          STATIC_ROOT = os.path.join(HERE, 'collectedstatic').replace('\\','/')
          STATIC_URL = '/static/'

          # Additional locations of static files
          STATICFILES_DIRS = (
               # Put strings here, like "/home/html/static" or "C:/www/django/static".
               # Always use forward slashes, even on Windows.
               # Don't forget to use absolute paths, not relative paths.
               os.path.join(HERE, 'static').replace('\\','/'),
          )
     

     7. 系统的最顶层url映射地址。默认的'urls'是与manage.py同级目录的urls.py
          ROOT_URLCONF = 'package.urls'
     8. wsgi配置:
          # Python dotted path to the WSGI application used by Django's runserver.
          WSGI_APPLICATION = 'config.wsgi.application'

三. 创建应用: blogdemo
     1. 建立一个models.py
          #!usr/bin/env python
          #coding: utf-8
          from django.db import models
          class Category(models.Model):
               name = models.CharField(max_length=32)
               def __unicode__(self):
                    return self.name
               class Admin:
                    pass
     2. 同步DB
          建立好这个model后(当然任何时候都可以执行下述的命令来创建数据库)
          python manage.py validate来验证是不是正确的models路径配置
          python manage.py sqlall blogdemo 来展示如何创建sql数据库脚本
          python manage.py syncdb 来创建数据库表
          python manage.py dbshell 进入db的shell
          python manage.py createsuperuser 创建超级用户
     3. 建立url配置:
          admin.autodiscover() #这一行是为了给管理员加具体模块操作的权限的,如果没有,那么管理员就无法对数据库中的model进行直接操作
          urlpatterns = patterns('',
               (r'^$', 'blogdemo.views.listArticle'),
               (r'^admin/', include(admin.site.urls)),
          )
     4. 注册管理员界面(如果需要的话)
          在app下建立admin.py文件 (settings中的'django.contrib.admin'是对应的管理admin的app,如果没添加到install_app中,那么要加上)
          admin.site.register(Category)
     5. 添加views.py与数据库和模板交互。这里只给了个获取全部article的
          from blogdemo.models import Article
          from django.shortcuts import render
          def listArticle(request):
               lists=Article.objects.all()
               return render(request,'article_list.html', {'object_list': lists})
     6. 建立模板。在已经创建的template下(看settings中的设置路径)
          article_list.html:
          {% if object_list %}
            {% for article in object_list %}
               <div class="article">
                 <div class="title"><a href="/blog/{ { article.id }}">{ { article.title }}</a></div>
               </div>
            {% endfor %}
          {% else %}
            <p>對不起沒有文章喔!</p>
          {% endif %}
     7. 运行服务 http://localhost:8000/admin和http://localhost:8000/
     8. 如果需要上传文件,则需要添加如下设计:
          urls中增加media url映射
          url(r'^media/(?P<path>.*)$', 'django.views.static.serve',{'document_root': settings.MEDIA_ROOT}),

          model中增加类型:
          link = models.FileField(upload_to='rateTemplate/%Y%m%d%H%M%S/')

          settings中增加:
          HERE = os.path.dirname(os.path.abspath(__file__))
          MEDIA_ROOT = os.path.join(HERE, 'media/').replace('\\','/')
          MEDIA_URL = '/media/'

DjangoDB基本操作:
一、模型定义
     https://docs.djangoproject.com/en/1.4/topics/db/models/
     Django模型是django.db.models.Model的子类
     class Entry(models.Model):
     name = models.CharField(u'name', max_length=64, db_index=True, unique=True)
     def __unicode__(self):
        pass #定义print时对象展现的数据
    class Admin:
        pass #是否支持Django Admin管理
    class Meta:
          #权限,表明等可选信息 Meta options - https://docs.djangoproject.com/en/1.4/ref/models/options/
        db_table = 'metadata_keyword' #model在db中对应的表名
        permissions = (
            (&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值