`
booby325
  • 浏览: 383653 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

django快速搭建工程

 
阅读更多

1. 首先建立一个pydjango的项目。

   初始的项目包括根目录的manage.py,以及一个以project name命名的文件夹(包含settings.py, urls.py,和一个wsgi.py)

   注意:如果这个project包含多个app(其实就是包,每个包中应该是单独的文件夹),那么应该建立多个包,然后在每个包创建自己的urls设置,以及views和models,然后再上层目录建立一个总的urls转发。

 

2. 修改settings.py 这个是最重要的东东。一定要记住里边的数据的目录是相对于这个settings的文件的

数据库连接

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.

}

}

时区和语言

TIME_ZONE='Asia/Beijing'

LANGUAGE_CODE='zh-cn'

 

模板目录

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('\\','/'),

    '.',

)

支持的app 注意包的路径,我们现在只是在project的根目录下建立了一个blogdemo的app

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',

)

 

3. 创建app : blogdemo

3.1 建立一个models.py, 里边的数据是和db关联的

#!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 Amdin是用来声明标记这个类拥有一个管理界面

#在Admin之下你可以配置许多选项 目前我们采用默认值,所以我们使用pass来表示Admin类是空的. 可以补全这个类为权限细分

class Admin:

pass

 

class Article(models.Model):

title         = models.CharField(max_length=64)

published_at  = models.DateTimeField('date published')

content       = models.TextField()

category      = models.ForeignKey(Category)

def __unicode__(self):

return self.title

class Admin:

pass

建立好这个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.2 修改urls:

from blogdemo.models import Article

from django.conf.urls import patterns, include

from django.contrib import admin

 

#这一行是为了给管理员加具体模块操作的权限的,如果没有,那么管理员就无法对数据库中的model进行直接操作

admin.autodiscover()

 

urlpatterns = patterns('',

(r'^$', 'blogdemo.views.listArticle'),

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

)

 

urls准备好后,管理员界面其实已经可以用了。但是具体哪个model会被编辑,需要再admin.py中注册

在app下建立admin.py文件 (settings中的'django.contrib.admin'是对应的管理admin的app,如果没添加到install_app中,那么要加上)

from django.contrib import admin

from models import Category, Article

 

admin.site.register(Category)

admin.site.register(Article)

 

3.3 添加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})

 

3.4 建立模板 在已经创建的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 %}

 

ok. 发布服务,查看http://localhost:8000/admin和http://localhost:8000/

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics