1. GUI控件添加的方法:
a. 导入模块
b. 创建主窗体
c. 创建控件对象,由Tkinter的该控件相关方法来实现的(关于看控件的具体使用可以help一下)
d. pack()(布局器)是用来管理和显示组件的,它的产生
e. 主窗口调用mainloop()进入主时间循环
from Tkinter import*
root = Tk()
label = Label(root, text = "Welcome to Python")
canvas = Canvas(root, bg = "white")
button = Button(root, text = "Click me")
'''
label.pack()
canvas.pack()
button.pack()
'''
label.pack(side = LEFT)
canvas.pack(side = LEFT)
button.pack(side = LEFT)
root.mainloop()
2. GUI布局管理器:
Grid Manager: 网格型
Pack Manager: 自动
Place Manager: 坐标
3. 事件与事件处理:
事件(Event):是当受控对象状态改变时,视窗系统给应用程序的通知或消息
事件处理(Event handlers):是捕获并响应事件的用户函数
绑定(bind):建立事件与相应事件的处理函数联系
4. GUI消息(事件)处理机制:定义、绑定、触发事件、返回结果
5. 按钮改变label边框及内容颜色的程序:
from Tkinter import*
def changeRelief():
reliefList = ['flat', 'raised', 'sunken', 'groove', 'ridge']
global reliefIndex
label.config(relief=reliefList[reliefIndex%len(reliefList)])
reliefIndex += 1
def changeColor(event):
colorList = ['red', 'blue', 'yellow']
global colorIndex
label.config(fg = colorList[colorIndex%len(colorList)])
colorIndex += 1
reliefIndex = 0
colorIndex = 0
root = Tk()
label = Label(root, text = "Welcome to Python")
button1 = Button(root, text = "relief", command = changeRelief)
button2 = Button(root, text = "color")
button2.bind("<Button-1>", changeColor)
label.pack()
button1.pack(side = LEFT, anchor = CENTER, expand = YES)
button2.pack(side = LEFT, anchor = CENTER, expand = YES)
root.mainloop()
from Tkinter import*
def increaseRadius(event):
canvas.delete("oval")
global radius
if radius < 100:
radius += 2
canvas.create_oval(100-radius, 100-radius, 100+radius, 100+radius, tags = 'oval')
def decreaseRadius(event):
canvas.delete("oval")
global radius
if radius > 2:
radius -= 2
canvas.create_oval(100-radius, 100-radius, 100+radius, 100+radius, tags = 'oval')
root = Tk()
canvas = Canvas(root, bg = 'white', width = 200, height = 200)
canvas.bind("<Up>", increaseRadius)
canvas.bind("<Down>", decreaseRadius)
canvas.focus_set()
radius = 50
canvas.create_oval(100-radius, 100-radius, 100+radius, 100+radius, tags = 'oval')
canvas.pack()
root.mainloop()
7. 数据库:有组织的数据集
数据库管理系统(DataBase Management System, DBMS):一套计算机软件,提供用户和数据库之间的接口:
数据定义、数据更新、数据查询、数据库管理
8. 关系型数据库:基于表的数据库
9. SQL(Structured Query Language)结构化查询语言
10. SQLite下载解压后放到c:/windows/system32下即可
11. SWLite简单使用:
C:\>sqlite3 test.db
SQLite version 3.8.6 2014-08-15 11:46:33
Enter ".help" for usage hints.
sqlite> create table student(id, name, room, phone);
sqlite> insert into student values(141001, 'zhang', '401', 8888001);
sqlite> insert into student values(141002, 'wang', '402', 8888002);
sqlite> insert into student values(141003, 'li', '401', 8888003);
sqlite> select * from student;
141001|zhang|401|8888001
141002|wang|402|8888002
141003|li|401|8888003
sqlite> select name, root from student;
Error: no such column: root
sqlite> select name, room from student;
zhang|401
wang|402
li|401
sqlite> select name from student where id = 8888002;
sqlite> select name from student where id = 1410002;
sqlite> select name from student where id=1410002;
sqlite> select name from student where id = 141002;
wang
sqlite> select name from student where id like '14100%';
zhang
wang
li
sqlite> select name from student where id like '14100*';
12. Python中使用SQLite3:
import sqlite3
name = raw_input('Input name: ')
con = sqlite3.connect('c:/test.db')
cur = con.cursor()
cur.execute('select * from student where name = ?', (name,))
rows = cur.fetchall()
for row in rows:
print row
13. Django使用MTV设计模式(Model,Template,View):收到请求后view调用,Model与数据通信读取数据,Template读取模板
14. Django安装,cd到解压后的文件夹,运行python setup.py install,(要求先安装有setuptools,Python默认没有安装)
15. 创建mysite项目:切换到Django/bin目录下> django-admin.py startproject mysite
启动服务器:> python manage.py runserver
默认地址和端口:127.0.0.1:8000
16. 添加应用:> python manage.py startapp addr_book
为了使用应用,修改settings.py:
# settings.py #
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'addr_book',
)
编辑addr_book目录下的views.py
from django.http import HttpResponse
def hello(request):
return HttpResponse("hello world")
编辑mysite目录下的urls.py,追加 (r'^hello/$', 'addr_book.views.hello'),:其中r'^hello/$'为URL的样式,如表示:http://127.0.0.1:8000/hello/; 'addr_book.views.hello'表示这个URL对应的视图函数;功能,告诉Django,指向URL/hello/的请求应由试图函数hello来处理。
urlpatterns = patterns('',
# Examples:
# url(r'^$', 'mysite.views.home', name='home'),
# url(r'^blog/', include('blog.urls')),
url(r'^admin/', include(admin.site.urls)),
(r'^hello/$', 'addr_book.views.hello'),
)
17. 动态页面,显示当前时间:
addr_book中views.py中添加
import datetime
def current_time(request):
now = datetime.datetime.now()
return HttpResponse(now)
mysite中urls.py中添加
urlpatterns = patterns('',
# Examples:
# url(r'^$', 'mysite.views.home', name='home'),
# url(r'^blog/', include('blog.urls')),
url(r'^admin/', include(admin.site.urls)),
(r'^hello/$', 'addr_book.views.hello'),
(r'^time/$', 'addr_book.views.current_time'),
)
18. 添加html文件:
addr_book中添加time.html文件,{{time}}为变量,显示视图函数的返回值
<html>
<head>
<title>现在几点了?</title>
</head>
<body>
<p><h1>现在时间是{{time}}。</h1></p>
</body>
</html>
addr_book中views.py中添加
from django.template import Context
from django.shortcuts import render_to_response
def current_time2(request):
now = datetime.datetime.now()
c = Context({'time':now})
return render_to_response('time.html', c)
mysite中urls.py中添加
urlpatterns = patterns('',
# Examples:
# url(r'^$', 'mysite.views.home', name='home'),
# url(r'^blog/', include('blog.urls')),
url(r'^admin/', include(admin.site.urls)),
(r'^hello/$', 'addr_book.views.hello'),
(r'^time/$', 'addr_book.views.current_time'),
(r'^time2/$', 'addr_book.views.current_time2'),
)
mysite中settings.py中添加
TEMPLATE_DIRS = (
'./addr_book/',
)
19. 模型:
addr_book中models.py中添加
class People(models.Model):
name = models.CharField(max_length=30)
sex = models.BooleanField(default=True)
phone = models.CharField(max_length=15)
email = models.EmailField()
address = models.CharField(max_length=50)
设置settings.py中数据库类型:DATABASES,python默认为sqlite
20. 模型安装:
验证数据库:>python manage.py validate
安装数据库:>python manage.py syncdb
网址:http://www.icourse163.org/learn/hit-9003#/learn/content