samsungsamsung 发表于 2018-8-16 08:45:59

从零开始学Python-day6

  Python--Day6
  学习要有定位,明确目标地去学习。希望自己能坚持下去,并有所收获---leaves
  python05 -- python函数、文件小讲以及模块和初识flask Web框架
  一、文件处理及相关函数
  open(文件路径,打开模式) 或者with open() as f:
  读写、追加文件
  数据库
  #configparse 配置文件写成一个字典
  read   readlinereadlines
  writewritelines
  文件指针函数
  tell()   文件指针的位置
  seek()    移动指针
  flush()    将内存写入到硬盘上
  二、函数
  **python核心思想: 函数化编程==>重点
  2.1 函数概念
  函数:python编程中基本的单元
  def函数名(参数可忽略):
  函数体
  return返回值
  2.2 函数的主要理解:函数式编程 FP
  一、注意理解hello 和 hello()的区别,前者是抽象的函数,后者是具体的返回值
  二、函数可以是参数,进行传递
  ##代码示例
In : def fishing():  
   ...:   print "diaoyu is good "
  
   ...:   return 'fish'
  
In : fishing()
  
diaoyu is good
  
Out: 'fish'
  
In : def doSth(fn):
  
   ...:   print fn() + 'is got '
  
   ...:   return 'ok'
  

  
In : doSth(fishing)
  
diaoyu is good
  
fishis got
  
Out: 'ok'
  

  

  
###sorted()函数配合lambda匿名函数实现排序
  
In : arr = [('age',1),('age',19),('age',51),('age',13),('age',31),('age',41),('age',12)]
  
In : print sorted(arr,key=lambda x:x)
  
[('age', 1), ('age', 12), ('age', 13), ('age', 19), ('age', 31), ('age', 41), ('age', 51)]
  三、模块
  3.1 模块定义
  模块:简单的理解,模块就是文件,我们可以把一个功能存在一个文件中,通过import调用.
  3.2 模块的分类
  模块整体上分为三类:
  1.python自带的模块,如sys,os,math,random,time模块等
  2.第三方开发者开发的模块,可以通过pip install 安装,然后import调用导入使用,如flask,requests,pyquery,psutil等
  3.自己开发的模块
  引申:python中文件夹默认不能导入的,如果需要导入文件夹的话需要添加__init__.py文件,__init__.py文件可以为空,其主要目的是使文件夹变成包以达到可以导入的目的.
  调用格式:from"文件目录名" import "导入的函数"
  ##自己开发的模块示例:
##自己编写的模块  

  
# pwd
  
/usr/local/src/newbie/05/code
  
##文件编写的模块内容
  
# cat hello.py
  
def hello_world():
  print "hello world"
  
##ipython中导入模块及使用
  
In : import hello
  
In : print hello.hello_world()
  
hello world
  
None
  
In : pwd
  
Out: u'/usr/local/src/newbie/05/code'
  3.3 模块调用的方式
  模块的使用主要有三种方式:
  1.import模块名
  调用:模块名.函数名()
  2. from 模块名import函数名
  调用:函数名()
  3. from模块名   import*
  调用:函数名()#导入模块中所有函数,不推荐使用
  3.3.1import的查找路径顺序:
  当前路径---> systempath(系统路径)
  1.当前路径:当前目录
  2.systempath
  3. 文件名不要和模块名重复以免调用异常
##systempath 的查看方法:  
import sys
  
sys.path
  
In : sys.path
  
Out:
  
['',
  
'/usr/local/python27/bin',
  
'/usr/local/python27/lib/python27.zip',
  
'/usr/local/python27/lib/python2.7',
  
'/usr/local/python27/lib/python2.7/plat-linux2',
  
'/usr/local/python27/lib/python2.7/lib-tk',
  
'/usr/local/python27/lib/python2.7/lib-old',
  
'/usr/local/python27/lib/python2.7/lib-dynload',
  
'/usr/local/python27/lib/python2.7/site-packages',
  
'/usr/local/python27/lib/python2.7/site-packages/IPython/extensions',
  
'/root/.ipython']
  3.3.2 **注意import 会把模块里的代码执行一遍
  #示例代码
# python run.py  
Welcome Module Hello
  
hello world
  
None
  
# cat hello.py
  
def hello_world():
  print "hello world"
  
print "Welcome Module Hello"
  
# cat run.py
  
import hello
  
print hello.hello_world()
  
#
  
# python run.py
  
Welcome Module Hello
  
hello world
  
None
  3.3.3 import模块出现的矛盾
  问题,如3.3.2中的代码,如果引入的时候我不希望执行hello_world()函数外边的print语句,该怎么解决呢。
  为了解决引入模块时执行该引入模块中不需要的东西,所以Python中添加判断来解决
  if __name__ == "__main__":
  代码块
  将所引入模块其本身才需要执行的代码放到if判断内,以防止调用被随意的执行。
  #示例代码如下:
##run.py 的内容  
# cat run.py
  
import hello
  
print hello.hello_world()
  

  
##hello.py的内容
  
# cat hello.py
  
def hello_world():
  print "hello world"
  
if __name__ == '__main__':#
  

  
单选框
  

  

  

  

  

  
多选框
  

  
吃饭
  
睡觉
  

  

  

  
##时间和颜色
  

  

  

  

  

  执行的结果图:
  1.form结果图

  2.单选多选框结果图

  3. 时间颜色结果图

  5.3 其他常用标签
  一段话:一段话
   换行,也没有闭合标签
   一个横线
   锚点,超链接。 锚点的href属性是跳转
     图片标签,src属性是图片的地址
  按钮
      盒子,没有默认样式
  默认的行内模式
  HTML代码练习:
  

  
按钮
  
tes图 p 标签
  

  

  

  

  

  

  
登录
  

  执行结果图如下:

  5.4 form标签结合flask实现前端提交注册用户名密码
  实现注册的代码:要求,通过/的index主页访问,在name和password框中输入用户名密码,点击add提交按钮直接写入到users.txt文件中,而后跳转到/web4页面列举出所有的用户名密码。
# cat web2.py  
#/usr/bin/python
  
#coding:utf-8
  

  

  
###第二个web程序,练习form标签,熟悉前端向后端提交数据的流程
  

  
from flask import Flask,render_template,redirect,request
  

  
app = Flask(__name__)
  

  
@app.route('/')
  
def index():
  return render_template('form.html')
  

  
@app.route('/adduser')
  
def adduser():
  name = request.args.get('name','')
  passw = request.args.get('password','')
  with open('users.txt','a+') as files:
  files.write('%s:%s\n' %(name,passw))
  return redirect("/web4")
  

  
@app.route('/web4')
  
def web4():
  
       # tmp =request.args.get('word','web3')
  
       # age =request.args.get('age',14)
  
      #arr = [{'name':'one','age':14},{'name':'two','age':32},{'name':'three','age':9}]
  
      f = open('users.txt')
  
      arr = [ line.split(":")for line in f.read().split('\n') ]
  
      print arr
  
       # return render_template('web3_2.html',word = tmp,age = age ,arr = arr)
  
      return render_template('web3_2.html',arr = arr)
  

  
if __name__ == "__main__":
  app.run(host='0.0.0.0',port=888,debug=True)
  执行流程及结果:



页: [1]
查看完整版本: 从零开始学Python-day6