下载安装
去官网下载和已安装的python版本对应的Django版本。
解压后进入目录,执行 python setup.py install,执行安装命令,所谓安装其实是将需要的文件拷贝到python对应的目录。
但第一次却报错
Traceback (most recent call last):
File "setup.py", line 5, in <module>
from setuptools import find_packages, setup
ImportError: No module named setuptools
原来是windows环境下python默认没有安装 setuptools 这个模块,所以提示找不到。
去 https://bootstrap.pypa.io/ez_setup.py 下载ez_setup.py脚本并执行就自动安装上了。
创建PyDev Django Project
在Eclipse,New-PyDev Django Project,创建成功后,Run该项目,Django有一个内置的服务器,Run后该服务器就启动起来了。
在浏览器执行 http://localhost:8000/ 可看到一个默认的输出页面。
新建一个py文件,比如在目录 mypy下
mypy/hello.py
from django.http.response import HttpResponse
def hi(request):
return HttpResponse("Hello Python")
修改urls.py
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
# url(r'^admin/', include(admin.site.urls)),
url(r'index', "mypy.hello.hi"),
]
url(r'index', "mypy.hello.hi"), 表示在浏览器输入 http://localhost:8000/index,就可以访问 mypy包下文件hello的hi方法,hi方法返回的字符串会显示在页面上。
使用Django加载静态网页模板
创建html页面 /html/index.html
修改 settings.py下的 TEMPLATES 的 DIR,将index.html所在目录赋值给DIR。
使用内置函数render_to_response加载网页
loadHtml.py
from django.shortcuts import render_to_response
def hiHtml(request):
return render_to_response("index.html")
模板注入
在loadHtml.py中定义一个key-value,做实参给了render_to_response
<span style="font-size:18px;">def hiHtml(request):
user = {'name':'nqy',"age":29}
return render_to_response("index.html",user)</span>
在index.html中通过引用key,使用value的值
<span style="font-size:18px;">my name is {{name}}</span>
Django框架约定使用key的方式是{{ }}
(我发现对于初级入门型的课程,大可不必花钱学,因为网上这类免费资源多的是,真正需要付费的是那些高级课程)
读取get参数
request.GET.get(" ")
<span style="font-size:18px;">id = request.GET.get("id")
name = request.GET.get('name')</span>
中文乱码问题
在源码开头声明编码:#coding:utf-8
控制台乱码:修改默认编码集,重启web项目
条件判断
注意条件后面的 ":"
<span style="font-size:18px;">if 1==1:
print 'ok'
a = 3+5
print a
else:
print 'false' </span>
<span style="font-size:18px;">if 'keys' in user:
print user['key']
else:
print 'no key \'keys\' in user'</span>
None是特殊的常量,表示“不存在”
判断某个值是否存在的两种方式
<span style="font-size:18px;">user={'id':1,'value':'m'}
if 'id' in user.keys():
print user['id']
else:
print 'None'
print '----'
if user.get('id')==None:
print 'None'
else:
print user.get('id')</span>
表单
index.html
<span style="font-size:18px;"><form>
UserName:<input type="text" name="username" value="mac"/>
<br/>
PassWord:<input type="password" name="pw"/>
<br/>
<input type="submit" value="Submit"/>
</form>
Your name is {{myusername}}
<br/>
Your password is {{mypw}}</span>
loadHtml.py
<span style="font-size:18px;">#coding:utf-8
from django.shortcuts import render_to_response
def hiHtml(request):
user = {'myusername':"void","mypw":"void"}
if 'username' in request.GET:
un = request.GET.get("username")
print un
user['myusername'] = un
if 'pw' in request.GET:
pw = request.GET.get('pw')
print pw
user['mypw']=pw
return render_to_response("index.html",user)</span>
next:第10讲 限制用户输入纯数字