Python Web 实战 - 搭建Django环境和初步使用

下载安装

去官网下载和已安装的python版本对应的Django版本。

解压后进入目录,执行 python setup.py install,执行安装命令,所谓安装其实是将需要的文件拷贝到python对应的目录。

但第一次却报错

Traceback (most recent call last):
  File "setup.py", line 5, in 
    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

def hiHtml(request):
    user = {'name':'nqy',"age":29}
    return render_to_response("index.html",user)

在index.html中通过引用key,使用value的值

my name is  {{name}}
Django框架约定使用key的方式是{{ }}


(我发现对于初级入门型的课程,大可不必花钱学,因为网上这类免费资源多的是,真正需要付费的是那些高级课程)


读取get参数

request.GET.get(" ")

id = request.GET.get("id")
name = request.GET.get('name')

中文乱码问题

在源码开头声明编码:#coding:utf-8

控制台乱码:修改默认编码集,重启web项目


条件判断

注意条件后面的 ":" 

if 1==1:
    print 'ok'
    a = 3+5
    print a
else:
    print 'false' 


if 'keys' in user:
    print user['key']
else:
    print 'no key \'keys\' in user'

None是特殊的常量,表示“不存在”

判断某个值是否存在的两种方式

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


表单

index.html

UserName:
PassWord:
Your name is {{myusername}}
Your password is {{mypw}}

loadHtml.py

#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)

next:第10讲 限制用户输入纯数字






你可能感兴趣的:(Web,Python)