zoukankan      html  css  js  c++  java
  • diango学习笔记

    系统: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查看最终效果。

     

  • 相关阅读:
    Class.forName和ClassLoader.loadClass的区别
    数据库连接池优化配置(druid,dbcp,c3p0)
    MySQL在默认事务下各SQL语句使用的锁分析
    ArrayList vs LinkedList 空间占用
    MySQL锁详解
    利用ConcurrentHashMap来实现一个ConcurrentHashSet
    list与Set、Map区别及适用场景
    实现一个原子的正整数类:AtomicPositiveInteger
    mysql如何处理亿级数据,第一个阶段——优化SQL语句
    java性能优化
  • 原文地址:https://www.cnblogs.com/lovecc/p/4026170.html
Copyright © 2011-2022 走看看