初试django

最近学习了下python的框架 django ,在这做下笔记

 

安装部分省去,安装好了后.

1. 建立project .首先是要建立一个项目,django会自动生成一些项目中需要使用的文件,使得其符合django的标准.具体是进入你要建立project的目录然后使用 django-admin.py startproject djangotest 命令,这时候在你当前的目录下会产生名为

djangotest的目录,目录下有四个文件

 

 

__init__.py   空文件,使python认为这是个package

manage.py   使用命令的工具,比如起服务 runserver

settings.py   这个当然是一些关于工程的设置

urls.py   url 匹配当相应的方法,就像struts的struts-config.xml

 

 

2 建立app.接下来要建立app ,app存在于project中,一个project可以有多个app.可以把app理解为一个模块。这里就和java里的分类方式比较的不同,在java中一般是按照层来分包的,比如dao是一个包,service是一个包,而在django中,一个模块是一个包。

   进入djangotest目录运行 django-admin.py startapp codegen,会产生一个新的目录,名字是codegen,下面有三个文件

   __init__.py  和上面一样

  models.py   不用解释了吧

  views.py      对应你要执行的动作,相当于action

  实际上django可以根据你models.py里面的代码自动生成数据库的表以及字段。并自带提供一个web的管理界面,不过我现在还觉得django和数据库的连接让我觉得不是很方便,这里省去关于和数据库连接的部分。

 

3 设计url.这个时候就可以开始真正建立你的应用了,首先是设计你的url结构,在urls.py 中来配置你的url结构,这里用一个简单的登录功能来展示下,其url.py中

from django.conf.urls.defaults import *

# Uncomment the next two lines to enable the admin:
# from django.contrib import admin
# admin.autodiscover()

urlpatterns = patterns('', 
    (r'^djangotest/$', 'codegen.views.index'),
    (r'^djangotest/login$', 'codegen.views.login'),

)

 以 (r'^djangotest/$', 'codegen.views.index') 这句来说就是当用户访问url为 http://localhost:8000/djangotest/时就会访问到codegen下面的views.py中的index方法

 

4 编写view.在views.py中写下你的方法。看下views.py中的方法:

# Create your views here.
from django.shortcuts import render_to_response

def index(request):
    return render_to_response('login.html')

 只是简单的转向至login.html,在django中所有的url访问都必须要配置,哪怕只是一个简单的转向。不象在jsp中,你可以根据目录的结构来访问jsp文件,虽说通过正则表达式的匹配能够是使url配置很灵活,但在我看来并没有提供多大的好处,反而多了复杂性

    再来看下这个转向,如何去找到这个页面呢,这里并没有写路径啊 ,关键就在于在setting.py中有一项关于模板路径的配置

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.
      "/Volumes/work/dev/python/djangotest/codegen/templates",
)

配置了以后django就会在这个目录下寻找页面的文件。然后在这个目录下放入你的 'login.html'文件

 <html> 
 <head> 
   <meta http-equiv="Content-Type" content="text/html" /> 
   <title>登录</title> 
 </head> 
 <body> 
	 <form action="login" method="POST" id="generateForm">
           <p>{{ errormessage }}</p>
            <p>User Name:</p>       
	        <p><input type="text" name="username" id="username" /></p>
	        <p>Password:</p>     
	        <p><input type="password" name="password" id="password" /></p>
	        <p><input type="submit" value="submit" /></p>
	</form>
 </body> 
</html>

 

现在你可以用 python manage.py runserver这个命令来启动你的服务,然后访问lhttp://localhost:8000/djangotest/就可以看到你的登录页面。

  

 

 5.页面与后台的传值 

   

      在j2ee中一般使用request来进行页面和后台之前的传值,在前台展现用jsp,在django中也是用的request来传值,在页面展现有自己的模板语言,但不同的是他禁止你在页面上直接使用python语言。

    当我们点登录的时候会执行views.py中的login方法

def login(request):
	username =request.POST["username"]
	password =request.POST["password"]
	if username =="test" and password == "test":
		return render_to_response('success.html',{"username":username})
	else:
		return render_to_response('login.html',{"errormessage":"login failed"})

 

可以看到我们用的request.POST来取得参数,这个属性实际上是一个字典类型,可以使用字典类型可以用的所有方法。我们取得用户在页面上输入的用户名密码,如果为test就成功,如果不是就是失败。可以看到我们仍然是通过一个字典类型向页面上传值。

 在success中:

 <html> 
 <head> 
   <meta http-equiv="Content-Type" content="text/html" /> 
   <title>登录成功</title> 
 </head> 
 <body> 
  welcome     {{ username }}
 </body> 
</html>

 那么如果登录成功的话就可以看到 welcome test的字样。

 

 

  总的来说如果有过一些做web程序的经验的话那么学习django并不是太难,架构上还是经典的mvc架构。实际上比起java的一些框架在开发上我并不觉得django有多大的质的提高,思想还是一样,只不过是在python下

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值