python 入门笔记

基于python3.6,感觉熟悉java的人学python非常简单~

基础

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
a, b = 0, 1
print 3/2 #除法 有小数
print 3//2 #整除 没小数
print 3 ** 5 #3的5次方
xxx=input() #输入
if 1<5 and 6<8 :
pass
elif 6<5 or 5<8:
pass
elif not(9<7):
pass
else:
pass
print ("我叫 %s 今年 %d 岁!" % ('小明', 10))#格式化输出
#循环
while b < 10:
pass
for i in range(1,9) :
print(i)
for i in range(5):
print(i)
for i in range(0, 10, 3) :
print(i)
#输出
0
3
6
9
##转换
>>> int('123')
123
>>> int(12.34)
12
>>> float('12.34')
12.34
>>> str(1.23)
'1.23'
>>> str(100)
'100'
>>> bool(1)
True
>>> bool('')
False

列表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
list1 = ['Google', 'Runoob', 1997, 2000]
list2 = [1, 2, 3, 4, 5, 6, 7 ]
print ("list1[0]: ", list1[0])
print ("list2[1:5]: ", list2[1:5])
#输出结果
list1[0]: Google
list2[1:5]: [2, 3, 4, 5]
#删除
del list[2]
#长度
len([1, 2, 3])
#组合
[1, 2, 3] + [4, 5, 6]
#重复
['Hi!'] * 4
# 截取
L[2] #截取第三个元素
L[-2] #从右侧开始读取倒数第二个元素
L[1:] #输出从第二个元素开始后的所有元素
# 嵌套
a = ['a', 'b', 'c']
n = [1, 2, 3]
x = [a, n]
x[0][1]

元组

元组的元素不能修改

1
2
3
4
5
6
7
tup1 = ('Google', 'Runoob', 1997, 2000)
tup2 = (1, 2, 3, 4, 5 )
tup3 = "a", "b", "c", "d"
tup1 = ()
tup1 = (50,)
del tup1 #删除元组


字典

键值对 键必须是唯一的,但值则不必。
字典值可以是任何的 python 对象,既可以是标准的对象,也可以是用户定义的,但键不行。

1
2
3
4
5
6
7
dict1 = { 'abc': 456 };
dict2 = { 'abc': 123, 98.6: 37 };
dict1['abc']#访问
del dict['Name'] # 删除键 'Name'
dict.clear() # 清空字典
del dict # 删除字典

迭代器

1
2
3
4
5
6
7
8
9
list=[1,2,3,4]
it = iter(list) # 创建迭代器对象
for x in it:
print (x, end=" ")
import sys # 引入 sys 模块
next(it) //直接输出一个
#输出 1 2 3 4

函数

可以返回多个值

1
2
3
4
5
6
7
8
9
10
11
12
13
def 函数名(参数列表):
函数体
def power(x, n=2):
s = 1
#参数检查
def my_abs(x):
if not isinstance(x, (int, float)):
raise TypeError('bad operand type')
if x >= 0:
return x
else:
return -x

面向对象

允许多继承

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Student(object): #()里面表示继承的类
#属性的名称前加上两个下划线 __就是表明私有
def __init__(self, name, score):#构造方法
self.name = name
self.score = score
def print_score(self):
print('%s: %s' % (self.name, self.score))
bart = Student('Bart Simpson', 59)
lisa = Student('Lisa Simpson', 87)
bart.print_score()
lisa.print_score()

搭建Django

pip install Django 安装

mysql配置

方法一MySQLclient

安装MySQLclient

pip install mysqlclient

MySQLclient目前只支持到 python3.4,使用的更高版本的python到下面目录找到base.py,把图中的代码注释掉。

....\Python36\Lib\site-packages\django\db\backends\mysql

在settings.py填写数据库信息

1
2
3
4
5
6
7
8
9
10
11
12
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '数据库名称',
'USER': '用户名',
'PASSWORD': '密码',
'HOST': '域名'',
'PORT': '端口',
}
}
.....
TIME_ZONE = 'Asia/Shanghai' #时区

方法二pymysql

安装pymysql

pip install pymysql

在settings.py填写数据库信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import pymysql
pymysql.install_as_MySQLdb()
....
....
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '数据库名称',
'USER': '用户名',
'PASSWORD': '密码',
'HOST': '域名'',
'PORT': '端口',
}
}
.....
TIME_ZONE = 'Asia/Shanghai' #时区

同步已有的表

python manage.py inspectdb

创建管理员

python manage.py migrate 先同步
python manage.py createsuperuser 新建管理员