七日Python之路--第八天
说实话七天学完Python,确实有些难度。O(∩_∩)O哈哈~ 七天只是约数。
今天学的东西比较杂乱,看了些Django的model和view,早晨还看了一点socket编程方面,刚才还看了些sqlite3的一下东西。下面分开来写下吧。
(一)SQLite3
Ubuntu下面安装
dizzy@dizzy-pc:~$ sudo apt-get install sqlite3
SQLite3使用还是比较简单的,一个数据库文件就能搞定。
打开数据库:
dizzy@dizzy-pc:~/Python/django_project/form_test$ sqlite3 db.sqlite3
SQLite version 3.7.9 2011-11-01 00:52:41
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>
然后就可操作当前打开的数据库了:
sqlite> .tables #查看所有数据库表,相当于MySQL的show tables;
auth_group auth_user_user_permissions
auth_group_permissions blog_user
auth_permission django_admin_log
auth_user django_content_type
auth_user_groups django_session
还有一些通用的SQL语句:
sqlite> select * from blog_user;
1|admin|upload/python_fn.vim
sqlite>
sqlite> .schema table_name
#查看表结构
#输入 .help 查看更多帮助 !!!
就说这么多吧。SQLite3在手机等嵌入式中使用的比较多,小巧简单。
(二)Python的socket编程。
需要使用 import socket. socket编程多是C/S架构。
下面简单的例子。
#server.py
#!/usr/bin/python
#coding=utf-8
import socket
#创建socket对象,使用IPV4,TCP协议
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#将socket绑定到IP地址及端口。tuple元组类型,一个参数
socket.bind(('127.0.0.1',9999))
#设置监听,并设置最大监听数
socket.listen(10)
#等待请求,返回请求者的连接对象和地址元组(IP:PORT)。
conn,addr = socket.accept()
#获取请求者发送的数据
buff = conn.recv(1024)
print buff
#client.py
#!/usr/bin/python
#coding=utf-8
import socket
#创建socket对象
sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#连接服务器
sock.connect(('127.0.0.1',9999))
#向服务器发送数据
sock.send(str(raw_input('input msg.')))
当然这是很简单的例子,要学习的东西还有很多...... 以后在研究socket.....
--2014年07月28日19:46:38
(三)Django相关
(1)Cookies
在Response.COOKIES。是Python的一个标准字典型。可以将服务器的K-V数据进行保存。
cookie的设置:
def login(req):
if req.method == 'POST':
form = UserForm(req.POST)
if form.is_valid():
username = form.cleaned_data['username']
password = form.cleaned_data['password']
users = User.objects.filter(username__exact=username, password__exact=password)
if users:
resp = HttpResponseRedirect('/blog/index/')
#使用response.set_cookie(key,value,timeout)
resp.set_cookie('username',username,60*60)
return resp
else:
return HttpResponseRedirect('/blog/login/')
else:
form = UserForm()
return render_to_response('login.html',{'form':form})
cookie的使用与读取:
def index(req):
#使用request.COOKIES.get(key)获取value的值
username = req.COOKIES.get('username')
return render_to_response('index.html',{'username':username})
cookie的删除:
def logout(req):
resp = HttpResponse('logout')
#使用response.delete_cookie(key),删除cookie
resp.delete_cookie('username')
return resp
(2)session
为了数据的安全,有时需要将一些与用户有关的信息保存到服务器上。request.session
session的创建与使用:
def login(req):
if req.method == 'POST':
form = UserForm(req.POST)
if form.is_valid():
username = form.cleaned_data['username']
password = form.cleaned_data['password']
users = User.objects.filter(username__exact=username, password__exact=password)
if users:
resp = HttpResponseRedirect('/blog/index/')
resp.set_cookie('username',username,60*60)
#使用 request.session[key]=value 来对session进行赋值
req.session['username'] = username
return resp
else:
return HttpResponseRedirect('/blog/login/')
else:
form = UserForm()
return render_to_response('login.html',{'form':form})
session的读取:
def index(req):
#username = req.COOKIES.get('username')
#使用 request.session.get(key) 来获取value
username = req.session.get('username')
return render_to_response('index.html',{'username':username})
session的删除:
def logout(req):
resp = HttpResponse('logout')
#resp.delete_cookie('username')
#直接通过删除命令 del 进行删除。
del req.session['username']
return resp
(3)auth
User的使用。
from django.contrib.auth.models import User
User的创建:
#在Python 交互 shell 中实现。至少需要两个参数:username, password
>>> User.objects.create_user(username='aaa',password='aaa')
劳逸结合才是王道! 可惜还是没有什么困意 。。。。。 Org......
--2014年07月29日01:55:45
- Python之函数的进阶(带参数的装饰器)
- 2017.10.2解题报告
- MVC 5 Scaffolder + EntityFramework+UnitOfWork Pattern 代码生成工具集成Visual Studio 2013
- 左手用R右手Python系列——百度地图API调用与地址解析/逆解析
- OpenCV实战:人脸关键点检测(FaceMark)
- Asp.Net MVC +EntityFramework主从表新增编辑操作的实现(删除操作怎么实现?)
- 模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板
- 洛谷P1311 选择客栈
- 洛谷P1607 [USACO09FEB]庙会班车Fair Shuttle
- R语言抓包实战——知乎live二级页面获取
- 左手用R右手Python系列——面向对象编程基础
- 线性同余同余方程组解法(excrt)
- #19. 计数(容斥原理)
- 左手用R右手Python系列——多进程/线程数据抓取与网页请求
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法