2023-07-27

Python知识点:函数、面向对象 前端开发:HTML、CSS、Javascript. jQuery. Bootstrap. MySQL数据库 Python的Web框架 o Flask,自身短小精悍+第三方组件。 ·Django,内部已集成了很多组件+第三方组件。【主要】 1.安装django pip inatall django e:lpython39 python.exe Scripts pip.exe django-admin.exe [工具。 创建django项目中的文件和文件夹】 LAb 内置模块 site-packages openpyxl python-docx flask django 【框架的源码】 2.创建项目 django中项目会有一些默认的文件和默认的文件来。 2.1在终端 打开终端。 进入某个目录(项目放在哪里) /Users/wupeigi/PycharmProjects/gx 执行命令创建项目 "e:\python 39\Scriptsldjango-admin.exe" startproject 项目名称如果c:\python39\Scripts 已加入环境系貌环境变量。 django-admin startproject 项目名称 /Library/Franeworks/ Python.franework/Versions/3.9/bin/django-admin startproject site 默认项目的文件介绍: mysite -- manage.py [项目的管理,启动项目、 创建app、 数据管理][不要动] L mysite init -PY - settings-py Furls-py F-asgi.py Lwsgi.py [项目配置] 【**常常操作。 】 【uRL和通数的对应关系][•*·常常操作*·】[接收网络请求] 【不要动]【接收网络请求]【不要动] L — app01家 init -PY F admin.py F appa.py -mgrations [固定,不用动] django默认提供了admin后台管理。[固定,不用动]app启动类[固定,不用动]数据库变更记录 L init PY F modela.py F tests.py Lviews.py manage.py mysite2 【-*重费··】,对数据库操作。[固定,不用动] 单元满试【-*重要.·】, 时数 —借 init -py - asgi.py F settings-py -urls.py L wsgi.py [uRt->#数】 1.1基础入门 编码 编码基础知识点:utf-8、unicode、 gbk, ascii 默认解释器编码: Python2: ascll(# coding:utf-8 Python3:utf-8(重要) 输入和输出 print input, 用户输入的永远是字符串类型。 data S input(“请输入序号:”)串 1 print(data) *”1 变量 规范:字母、数字、下划线:数字不能开头:不能是py内置关键字。建议: 见名知意 多个单词,用下划线连接。 全局变量用大写(DATALIST,USERLINFO):局部安量小写(user_age) 注意: 全局变量局部安量函数名类名文件名包名称 GETLINFO get_info getinfo GetInfo get_into get_into 异常处理[补充] data input(“请输入:”) 你好 T # res int(data) print(res) 这个代码是有风险,可能会报错。 print("开始”)try: data input(请输入:”) 123 /你好 res I int(data) print(res) except Exception as e: print(“出错了”) print("结束”) 循环中for/while内部都可以用break、 continue 字符串格式化 data “我是行), 姓名是0, 年龄是0” .format("xx",123,999) data = “我是(0》, 姓名是(1), 年龄是(2)” .format("xx" ,123,999) data “我是(0), 姓名是(0}, 年龄是(2)” .format(xx" .123) 运算符 传统的运算符逻辑运算符 常见操作,最终的到的结果:True/False if 1>10 and 9c8: pass else: pass 非传统,最终的结果是:第一个或第二个值。 data 值1 and 值2v1#5 and 9 9v2=0 and 100 I 1.2数据类型 字符串类型 不可变类型; 常见方法:strip/split/replace/join V1 “root data =vl.upper() print(vl)print(data) root ROOT # 公共:索引、 切片、循环“root"V11]= X v1 塞 报错。 不可变 列表类型 可变类型 常见方法: append/insert/pop/remove 公共:索引、切片、循环 vI 111,22,33.44.55] # VI0]vl[1:3]vl(1:-1)列表的推导式data 前取后不取 [i for i in range(10))data # [i for i in range(10)if i<5] 字典类型 可变类型 字典的键是有要求:可哈希类型, 目前不可哈希:1ist/dict/set。扩展:python3.6+字典有序。 常见的功能:keys values ftems get data 0)V1 姜 data.get(*k1") 关于元组 v1V2 (11.) (11)11 11 V3 其他数据类型 其他类型转布尔类型时,哪些为False: 空、0、None 其他类型转自己类型时, 自己的类名() int("123) 1.3函数 定义 det func():pass func() 参数 def func(vl,v2)= pass def func(vl, v2-None)#pass def fune(*args,**kwargs): pass 返回值 没有返回值,默认返回None def func(vl,V2): print(999) 一个返回值 def func(vl,v2): Teturn 123 res= func(1.2)print(res)# 123 多个返回值 def func(vl.v2): return 123,999,123 res func(1,2) print(res)123.999,123) def func(vl,v2): return 123,999,123 dl,d2,c3= func(1,2) vl.v2.111,22) vl,v2,v3  (11,22,999) lambda表达式(匿名函数) def func(arg): return arg 100 func lambda arg:arg+100vI m func(100)print(vi) 200 菜 内置函数 max/min/all/any/help/hex/oct/bin. open, 文件操作。 t open("xx.log",mode-'r')data f.read()f.close() 文件操作 模式:r/w/a rb/wb/ab 打开6 关闭 M with open("xx.log",mode'r') as f: f.read#) 1.4模块 分类 自定义模块:自己写文件/文件夹 内置模块:time/datetime/jeon/hashlib/random/re 第三方模块: openpyxl/requests/bs4/#lask/django等 自定义模块 sys.path, Python内部导入模块时,根据目录去寻找。一定不要让自己写的模块名和内置的模块名重复( T 导入模块: import xxx from xxx import xxx 内置模块 时间部分: time/datetime/字符串类型。 random:随机生成数字。 hashlib:加密(md5加密、md5加密+加盐)防止被搜库。Json: JSON格式的字符串: 内部字符串双引号、内部[1jaon.dumpa dson.loads re和正则 M 正则:\dw:装匹配。re.search/re.match/ re.findall 第三方模块 安装第三方模块:pip、 源码、wheel 常见第三方模块: requests bs4 openpyxl python-docx flask/django (tlask简洁(轻量级);django功能强大) 1.5面向对象 S 面向对象的三大特性:封装、继承、多态。理解, 读懂源码和代码。 m 1.6 MySQL数据库 数据库 表 数据行 更多知识:https://www.bilibili.com/video/BV15R4yib7y9 show databases; use 数据库: show tables;dese 表名; select fron 表; insert Into 表(列,列,列)values(.. ) update delete 表set列-值; from表 where条件; Python连接并操作MySQL: pymysql 【自己原生写】 piP instal1 pymysql mysqlclient 【django内部】 pip instal1 mysglelient MySQLdb (默认不支持python3) pip intal1 MysQLdb 当使用Python码去操作MySQL时,一定要防止SQL注入的问题。 S0L语句不要用子得事格式化去拼接。 import pymysql 1.注接MySOL conn = pymysql.connect(host 127.0.0.1, por t=3306,user=' root r passwd=root123, chArsett ut:8 GD unicom') CuTs0r TT HLOL(CUTSC PynyagL.CUrBOI# DictCursor) 【错误] 不要这么写 SqI select cursor.execute(sgl) from admin where d 外 .format(2) 机】这么车 cursor.executettselect fromladmin where 1d 3 $S# 【2元 T) 获取符合条件的第#条数据。 字我 1M T0s cursor.fetchone() print(res)1999999999 #Cd3. username 集宁”, passvord': qwe123 moblle 外 3.关闭注楼cursor.close()conn.close() 1.7前端开发 HIIMIL 块级和行肉alY. spanl 上2 dlv/h果列 (诚 惠度、宽度、边距无效) 柠内:9pan/e Form串 action=“地址"> storm method POSt simput Kinput tPe* subnit #/tOXmD 关于a标签 ca href="www.baidu.com"#百度 超链接去跳转。做铺点 第一章第二章cdiv id-"ml ylee"beight: 1000px;“>第请新管style代码块style> div(}vl( }1V2() /styles 文件中 选择器 div《}#vl(}.V2) div[xx-'11]() 样式 color; fonts-ize; background-color;padding: margin;float:left:,脱商文档流。 clear:both;:after javaScript & jQuery 本质上:找到标签:操作标签。 找标签 $("*x1)$(".x1)s("div") $(inputItype-'text1")操作标签 找到 input 标签且 type-'text' $(x1).text0)$("*xl").text("xxx") cdiv ide'xl'dd/div cdiv ide'xl'>xxxx/div s("#x1").val()$("*x1").val(xxx") sinput ide'xl/> $("#x1").attr("uu") cdiv id'x1* uu-"123>ddc/div cdiv id-'x1'uu-999"ddc/div $("*x1").attr(uo",“999) $("#x1").empty()s("#x1").remove0) cdiv idxl'ddc/div sdiv ide'xl'>ddc/div> -清空内容 整个标签删除 BootStrap&其他组件 支持响应式布局。 根据屏幕的宽度调整布局。格, 12份。 常见的样式: WM container 面板按钮表单表格对话杯 外 container-fluid 姜 — 第三方插件 插件一般都包含:css、 Javaseript, 开发使用时候 引入CBB、 d(依赖jQuery)使用 关于注释 Python谱言注释 WM# 注释 HTML CI- - SE CSS注释 /*注释 JavaScript //注 /* 注释 / 1.8 Django 安装 pip instal1 django python安装目录下: 11b/site-packages/django源码包Serlpts/dtango-admin.exe 文件 创建Django项目 >>django-admin startproject 项目名 创建APP >>>cd 项目目录 >python manange.py atartapp app名称 注册app 不注册,models.py生成数据库表行为不执行。不注册, 模板文件、 静态文件, 不回去app目录下找。 static目录, 静态文件目录 templates目录,模板文件目录(HTML)表结构设计app01/modes.py下执行 from django.db import models class UserInfo(models. Model): v1 S models.CharField(max length-32) >>python manage.py nakemigrat lons 2>>python manage.py migrate uris.py中编写路由。 from django.urls import path,re_path from app01 import admin urlpatterns path('admin/1ist/ admin. admin list),path('admin//delete/, admin.admin_ delete).re_ path('admin/(2pnid\d+)/delete/'. admin.admin delete) 视图雨数 def admin list(request) k1 -request.PosT.get(k1") 业务处理 return 数据 默认参数request, 包含请求相关的所有数据。 request.method reguest.GET reguest.PoST request.FILEs, 上传文件。 request.path info, 获取当前请求的URL http://127.0.0.1:8000/depart/add/ S /depart/add/ 返回值 return HttpResponse("字符串”) return JSONResponse( ("status":123."data":1456,55,66,22.1》) return JSONResponse( [11,22,33.44),safe-False)return render(request,"xxx.html",(值))return redirect("http://127.0.0.1:8000/depart/add/") return redirect("/depart/add/") 数据库的ORM操作 增加 models.类.objects.create(name-"武沛齐“,age-19)models.类,objects.create(**("name":"武沛齐".“age":19}) obj models.类(name="武沛齐“,age=19)obj.save() 塞 obj_list = models.类(name="武沛齐,age-19),models.类(name-"武沛齐 ,age19).models.类(name-"武沛齐* ,age=19).models.类(name="武沛齐,age=19),models.类(name="武沛齐” ,age-19) T models.类.objects.bulk_ create(obl_ list,batch_size=10) 查询 queyrset = models.类.objeets. tilter(nane-"武沛齐“,age=19)queyrset models.类.objects.tilter(.*("name":”武沛齐",“age":19))911 [obj,ob3.] obj=models.类.objects.fllter(name-"武沛齐",age-19).first0) obj / None queyrset =queyrset =queyrset queyrsetmodels.类.objeets.filter(age1t-19)queyrset= models.类.objeets.tilter(age1te-19)queyrset- models.类.objectmrilter(agegt-19.name-"武沛齐”) models.类.objects. filter(age=19)models.类,objects.filter(agegt-19)models.类.objecta.filter(agegte19) queyrset queyrset model8.类.objecta.filter(name contains-*中国”)models.类.objects.exclude(id-9) id1-9 queyrset models.类.objects.filter(age-19).orderby(id")queyrset* Bodels.类.objects.filter(age19).orderby("-id")queyrset models.类objects.filter(age19).order_by("-id","name") queyrset Bodels.类.objects.tilter(age-19)10:10) 更新 queyrset= models.类.objects.tilter(id=2),update(age-19,nane-"武沛齐“)queyrset . models.类.objects.filter(id 2).update(.*(name“:"武沛齐”,“age":19)) objmodels.类.objects.filter(id-2j.first0obj.name “武沛齐”obj.age19obj.save() 别除 models.类.objecta.filter(id-2).delete() 壁理的所有ORN操作: https ://www.cnblogs. com/wupeiqi/artioles/6216618.html Form和ModelForm组件 自动生成HTML标签 对用户请求的数据进行校验 自动保存到数据库(HodelForm) 错误信息 from django fmport forms class UserForm( forns.Form): XX forms.CharPield(. class UserModelForn( forms . ModelForm): class Meta: model models.类 fields all form UserModelorm(datarequest, posT.inatance-对象) if form.is_valid): form.eleaned data else: form.errora 关于POST提交CSRF认证 cform methode' post (份 csrf token c/form> 如果想要免除csrf认证。 from django.views. decorators.csrf import csrf exempt @csrf exempt det order_add(request):pass Cookie和Session cookie. 本质上保存在浏览器端的键值对。 session, 保存服务器端(django是将aession默认存储在数据库中) def order add(request)# request.sesslonl'xx]= 123 def logout(request)# request.session.clear() 中间件 类process request / process response 注#中间件类 MIDDLEWARE 'djangoumiddleware.security.SecurityMiddleware django.contrib. sessions .middleware.SessionMiddleware iddleware.comnon,.ComonMiddleware lniddleware.csrf.csrfViewniddleware C 上 * C .contrib.auth.middleware. AuthenticationHiddleware'django.contrib.nessagesmiddleware . HessageHiddleware 'django.niddleware.elckjacking.XFrameopt ionshiddleware''appol.middleware,auth.AuthMiddleware 王 -django请求到达之后, 自动会执行相应的方法。 process_request 没有返回值或返None,继读向后执行。 返回redirect/render/BttpResponse/JsonReponse, 栏#请求不再继续向后之后。 图片验证码 pip installpllow 创建图片并在图片上写文字字体文件 自定义模块 check_code 分页组件 开发时候会用。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,056评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,842评论 2 378
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,938评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,296评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,292评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,413评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,824评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,493评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,686评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,502评论 2 318
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,553评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,281评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,820评论 3 305
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,873评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,109评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,699评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,257评论 2 341

推荐阅读更多精彩内容