python学习第十九天

Django

获取一个项目的多个数据  request.POST.getlist(‘favor‘)

上传文件

import os

obj =request.FILES.get(‘‘)

file_path =os.path.join(‘upload‘,obj.name)

with open(file_path,‘wb‘) as f:

for i in obj.chunks():

f.write(i)

FBV function base view

CBV class base view

url对应关系  url(r‘^up‘, views.Up.as_view())

from django.views import View

class Up(View):

def dispatch(self, request, *args, **kwargs):

print(‘before‘)

result =super(Up,self).dispatch(request, *args, **kwargs)  继承父类的dispatch方法,dispatch方法负责识别用户数据发送方式

print(‘after‘)

return result

def get(self,request):

return render(request, ‘upload.html‘)

def post(self,request):

obj = request.FILES.get(‘file‘)

file_path = os.path.join(‘upload‘, obj.name)

with open(file_path, ‘wb‘) as f:

for i in obj.chunks():

f.write(i)

return render(request, ‘upload.html‘)

模板语言循环字典

{% for row in user_dict.keys(.values;.items) %}  .keys .values .items 循环列表元素,一个参数循环时以元组形式返回,两个参数循环时分别对两个参数赋值

{% endfor %}

Django正则URL

URL动态对应

url(r‘^detail-(\d+).html‘, views.detail) 顺序赋值

url(r‘^detail-(?p<nid>\d+)-(?p<uid>\d+).html‘, views.detail) 固定赋值

url(r‘^index‘, views.Index,name=‘index‘)

<form action="{% url ‘index‘ %}"></form> 自动对应URL

<form action="{% url ‘index‘ 3 %}"></form> 跳转到指定URL

<form action="{% url ‘index‘ nid=3 %}"></form> 跳转到指定URL

<form action="{{request.path_info}}"></form> 自动对应URL

from django.urls import reverse

v =reverse(‘index‘,args=(90,)) 生成指定url

v =reverse(‘index‘,kwargs=(‘nid‘=90,)) 生成指定url

URL分发

from django.conf.urls import include

url(r‘^cmdb/‘, include("cmdb.urls"))  先匹配url中的cmdb,然后在cmdb的urls文件中匹配对应函数

Django连接Mysql

DATABASES ={‘default‘:{‘ENGINE‘:‘django.db.backends.mysql‘,‘NAME‘:‘dbname‘,‘USER‘:‘root‘,‘PASSWORD‘:‘‘,‘HOST‘:‘‘,‘PORT‘:‘‘,}}

python3中需要在django的app目录下的__init__.py文件中添加如下两行代码

import pymysql
pymysql.install_as_MySQLdb()

创建表

class UserInfo(models.Model):
    username =models.CharField(max_length=32)
    password =models.CharField(max_length=64)

添加数据

1 models.UserInfo.objects.create(username=‘root‘,password=‘123‘)

2 dict ={‘username‘:‘jack‘,‘password‘:‘123‘}

models.UserInfo.objects.create(**dict)

3 obj =models.UserInfo(username=‘root‘,password=‘123‘)

obj.save()

查询

models.UserInfo.objects.all() 获取表中所有数据

models.UserInfo.objects.filter(条件,条件)

删除

models.UserInfo.objects.filter(条件,条件).delete()

修改

models.UserInfo.objects.filter(条件,条件).update(password=‘123’)

django ORM字段类型以及参数

http://www.cnblogs.com/wupeiqi/articles/5246483.html

user_type_choices =((1,‘超级用户‘),(2,‘普通用户‘),)

user_type_id =models.ItegerField(choices=user_type_choices)

添加外键

user_group =models.ForeignKey("UserGroup",to_filed=‘uid‘)

时间: 2024-11-08 06:29:44

python学习第十九天的相关文章

Python 学习第十九天 django知识

一,django 知识总结 1,同一个name属性的标签,多个值获取 <form action="/login/" method="POST" enctype="multipart/form-data"> <p> <input type="text" name="user" placeholder="用户名" /> </p> <p&g

python学习第十九天三元运算符与php语言区别

三元运算符是条件语句的简写,常见的条件语句写三行,三元运算符只需要写一行,python三元运算符是怎么写的呢 1,常见条件判断 if a<b: print(a) else: print(b) 2,三元运算符 val=a if a<b else b 如果a小于b 就等于a 否则 等于b 3,php语言的三元运算 $id = isset($_GET['id']) ? $_GET['id'] : false; 接收的id存在 取值 $id= $_GET['id']  否则 false 文章来自 (玖

python学习第九十九天:版本控制 渲染器 分页器

版本控制 版本控制: 方法一 1 127.0.0.1/course/?version=v100000 用from rest_framework.versioning import QueryParameterVersioning 在视图类里: versioning_class=QueryParameterVersioning(**不再是列表) 在setting里配置: REST_FRAMEWORK={ 'VERSION_PARAM':'version', 'DEFAULT_VERSION':'v

python学习笔记十——异常处理

1.try: command except 错误类型,记录错误信息变量: command finally: command try...finally的用处是无论是否发生异常都要确保资源释放代码的执行.一般来说,如果没有发生错误,执行过try语句块之后执行finally语句块,完成整个流程.如果try语句块发生了异常,抛出了这个异常,此时就马上进入finally语句块进行资源释放处理.如下从几个细节讨论finally的特性. 1).try中的return: 当在try语句块中含有return语句

python学习[第十二篇] 数据类型之 集合

python学习[第十二篇] 数据类型之 集合 集合概念 python中集合是一组无序排列的哈希值.集合分为两种可变集合(set)和不可变集合(frozenset) 对可变集合可以修改和删除元素,对于不可变集合不允许.可变集合是不可以哈希的,因此既不能用作字典的键,也不能做其他集合的元素. 集合的增删改查 集合的创建于赋值 集合与列表([]) 和字典({})不同,集合没有特别的语法格式.列表和字典可以通过他们自己的工厂方法创建,这也是集合的唯一的创建方式.set()和frozenset() #创

学习python课程第十九天

一.   各种序列化模块 一.  pickle 模块 pickle是一个用来序列化的模块 序列化是什么? 指的是将内存中的数据结构转化为一种中间格式, 并储存到硬盘上, 反序列化? 将硬盘上存储的中间格式数据在还原为内存中的数据结构 为什么要序列化? 就是为了将数据持久储存 之前学过的文件也能完成持久化存储, 但是操作起来非常麻烦 pickle模块的主要功能 dump   load   dumps   loads dump 是序列化.  load是反序列化 不带s的是帮你封装好 write 和

孤荷凌寒自学python第六十九天学习并实践beautifulsoup对象用法2

(完整学习过程屏幕记录视频地址在文末) 今天继续学习beautifulsoup对象的属性与方法等内容. 一.今天进一步了解到的BeautifulSoup模块中的一些用法小结: 1. Html标签对象.parent #返回直接上一级父级对象整体 2. Html标签对象.parents #parents返回从a对象的直接父级对象开始的各个逐个上升的父级直到<html></html>级为止的宗谱链,是一个生成器 3. Html标签对象.next_sibling #获取当前Html标签对象

python学习第十课 多路复用、ThreadingTCPServer、线程与进程

python 第十课 多路复用 I/O多路复用指:通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作 select    poll          epoll 网络操作.文件操作.终端操作等均属于IO操作,对于windows只支持Socket操作,其他系统支持其他IO操作,但是无法检测.如普通文件操作自动上次读取是否已经变化.所以主要用来网络操作 windows 和 mac的python 只提供select,linux上的python

我的python学习--第十四天(二)

一.ansible api 在了解python的ansible api之前,先简单了解一下ansible. ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量运行命令等功能. ansible是基于模块工作的,本身没有批量部署的能力.真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架.主要包括: 连接插件connection p