diango学习笔记

自古美人都是妖i 提交于 2020-03-20 18:25:32

系统:ubuntu14.0.4LTS

环境:python2.7 django1.7

1、通过sudo apt-get install python-django安装django模块

 

2、在/usr/bin目录中可以找到django-admin文件并复制

 

3、选择一个项目目录(如:django),并把django-admin文件粘贴到此目录下

 

4、在终端cd进入这个目录,输入:django-admin startproject mysite(项目名,以mysite为例)

 

5、在目录中找到manage.py文件放到mysite文件夹中并cd进入,终端输入:python manage.py startapp blog(应用名,以blog为例)

 

6、在mysite中的setting.py文件应用元组中加入'blog',(原教程这里是加入mysite.blog,但是在django 1.4以后这里只用加入app的名称即可,同理,下面的引用都是blog即可)

 

7、设计blog中的model,注释改为:

class BlogPost (models .Model ) :
  title = models.CharField(max_length=150)
  body = models. TextField()
  timestamp = models .DateTimeField( )

 

8、数据库默认为sqlite3不必修改。若用mysql数据库设置如下:
DATABASE-ENGINE = "mysql"
DATABASE-NAME = "d j angodb"
DATABASE-HOST = "localhost"
DATABASE-USER = "paul"
DATABASE-PASSWORD = "pony" # secret1

 

9、创建表,在终端输入:python manage.py syncdb,此时在urls.py中会生成相关的url,去掉注释即可。还会要求输入管理员信息,填好记好。

 

10、在终端输入:python manage.py runserver以此开启服务器。终端中会显示网址和端口,在浏览器中输入,显示it works就是搭建成功。

 

11、这时输入http://localhost:8000/admin,此时网页界面就进入后台管理了。为了让blog app显示,进入mysite/blog/models.py修改成以下:
from django.db import models
from django.contrib import admin

class BlogPost(models.Model) :
  title = models.CharField(max_length=150)
  body = models.TextField()
  timestamp = models.DateTimeField()

admin.site.register(BlogPost)
再刷新网页blog应用出现了。

12、但是新添加的blog会变成难看的blogproject。下面来改名字。在mysite/blog/models.py中添加一个BlogPostAdmin类,如下:
from django.db import models
from django.contrib import admin

class BlogPost(models.Model) :
  title = models.CharField(max_length=150)
  body = models.TextField()
  timestamp = models.DateTimeField()

class BlogPostAdmin(admin.ModelAdmin):
  list_display = ('title','timestamp')

admin.site.register(BlogPost,BlogPostAdmin)

其中,list_display变量中,可以添加自定义的内容。

再运行服务器,刷新界面,标题就出现了!

 

13、理清blog公共页面的结构:
一个模板(template),负责将传递进来的信息显示出来(用类似字典的对象Context)
一个视图函数(view),负责获取要显示的信息,在数据库中取得。
一个url模式,将收到的请求和视图函数相匹配,也可以向视图函数传递参数。

 

14、创建模板,在/blog下创建templates文件夹,并在里面新建一个archive.html的文件,如下:
{% for post in posts %}
<h2>{{post.title}}</h2>
<P>{{post.timestamp}}</p>
<p>{{post.body}}</p>
{% endfor %}

 

15、创建一个视图函数,文件为/blog/view.py。如下:
from django.shortcuts import render
from django.http import HttpResponse
from django.template import loader,Context
from blog.models import BlogPost

def archive(requset):
  posts = BlogPost.objects.all()
  t = loader.get_template("archive.html")
  c = Context({'posts':posts})

  return HttpResponse(t.render(c))

16、创建一个url模式:
先去/mysite/urls.py中,去掉注释后的url修改为:
url(r'^blog/', include('mysite.blog.urls')),


再在/mysite/blog/urls.py中:
from django.conf.urls import *
#Using django.conf.urls instead of django.conf.usrls.defualt will work. defaults model has been dropped in Django-1.6.
from blog.views import archive

urlpatterns = patterns(' ',

  url(r'^$',archive),

)
最后在浏览器输入:127.0.0.1:8000/blog查看最终效果。

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!