文档章节

七日Python之路--第八天

明天以后
 明天以后
发布于 2014/07/28 19:47
字数 837
阅读 84
收藏 0

    说实话七天学完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

© 著作权归作者所有

明天以后

明天以后

粉丝 76
博文 130
码字总数 87367
作品 0
昌平
程序员
私信 提问
七日Python之路--第一天

网上的资源是丰富的。但难免有些过时的信息,比如我现在使用的是去年下载的python3.3,而网上多数都是Python2.7。 差别比较大的就是:①读取用户输入raw_input()已经不能使用,只能使用input...

明天以后
2014/07/21
1.9K
0
七日Python之路--第十天

(一)PyCharm 试用一下,目前VIM只是当做记事本来用,还有好多命令不熟悉,基本就把VIN浪费了。由于之前Java使用Eclipse,这个IDE貌似跟那个差不多,试试吧。官网下载地址:http://www.jetb...

明天以后
2014/07/31
240
0
七日Python之路--第二天

由于之前使用过一段Ubuntu,所以基本命令啥的都还可以。装差利器Vim也是使用过一段时间的。 Ubuntu快速打开终端Alt+Ctrl+T,这样才显得犀利一些嘛。说实话,终端编辑文件啥的,确实比Win下面...

明天以后
2014/07/22
518
0
七日Python之路--第五天(之找点乐子)

(一)一些闲言碎语 刚才在搜索的时候,看到别人说的一句话,大体意思如下:自从学习Python之后,就不想在学习其他语言了,只想抓紧时间写些有用的东西。细想一下,果真如此。 唉,Python魅力...

明天以后
2014/07/26
140
0
七日Python之路--第八天(一些琐碎)

字符串相加的时候尽量使用:join 在while True 循环的时候,尽量使用:while 1 字符串处理: 分割 str.split('key') 列表翻转:list.reverse()...

明天以后
2014/07/29
92
0

没有更多内容

加载失败,请刷新页面

加载更多

六、Spring Cloud之配置中心config

前言 前面我们讲了微服务的注册中心、负载均衡、熔断处理、网管服务。接下来我们讲配置中心,为什么要用配置中心呢? 其实我们接触一段时间就可以发现,我们的项目还是非常多的,每个项目都有...

quellanan2
8分钟前
19
0
在Android的EditText视图中允许多行?

如何在Android的EditText视图中允许多行? #1楼 这对我有用 ,实际上这两个属性很重要: inputType和lines 。 此外,您可能需要一个滚动条,下面的代码显示了如何制作一个: <EditText ...

技术盛宴
12分钟前
13
0
分享自己写的JS版日期格式化和解析工具类,绝对好用!

前言 本来想模仿Java里面的SimpleDateFormat()对象的,但是感觉这样用起来不方便,所以还是直接写成单独的方法算了。 原文链接 日期格式化 2.1. 使用说明 formatDate(date, fmt),其中fmt支持...

SuShine
22分钟前
27
0
快递鸟api物流查询接口实现订阅物流轨迹单号查询功能对接调用

背景: 分享一篇关于在电商系统中同步物流轨迹到本地服务器的文章,当前方案使用了快递鸟集成api做为数据来源接口,这个接口是免费使用的,不过提供的功能还是非常强大的,有专门的售后维护团...

程序的小猿
26分钟前
24
0
Day08多态,abstract,接口

1.A:多态的概述:事物存在的多种形态。 B:多态前提:要有继承关系,方法重写和父类引用子类对象。 父类引用子类对象:Animal a = new Cat(); a.eat(); //效果等同于c.eat(); 2.多态中的...

Lao鹰
32分钟前
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部