p06

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


6. 键盘上下键改变圆大小程序:

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值