多線程編程
服務端樣例:
修改為持續接收和返回消息
图标展示
pyecharts - A Python Echarts Plotting Library built with love.
pyecharts画廊网站:https://gallery.pyecharts.org/
python 包中的API使用方式:
如何查看python 所包含库的api_命令行如何查看一个包下的api-优快云博客
quit()方法可以退出python的操作页面
python brew 安装的方式
Python在服务器部署使用supervisorctl + gunicorn进行部署:
如果有这个问题:
pkg_resources.DistributionNotFound: The 'supervisor==3.3.5' distribution was not found and is required by the application
主要是把系统切换到python2即可(因为supervisorctl ubuntu安装的版本是在python2下的):
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150
但是python2会有版本的问题,因此可以安装新版的supervisorctl:
pip3 install git+https://github.com/Supervisor/supervisor
再去执行supervisorctl reload即可
1.虚拟环境创建方式
(1)虚拟环境安装命令
pip install virtualenv
pip install virtualenvwrapper
windows下需要执行: pip install virtualenvwrapper-win
(2)创建虚拟环境
如果不指定python版本,默认创建Python2虚拟环境,在python2中创建虚拟环境
mkvirtualenv 虚拟环境名称
例:mkvirtualenv py_django
在python3中创建虚拟环境
mkvirtualenv -p python3 虚拟环境名称
例:mkvirtualenv -p python3 py3_django
如果报python3找不到,可以执行:mkvirtualenv -p python3 py3_django_test --python=D:\python3\python.exe
(3)查看和切换虚拟空间
查看:workon
切换:workon 虚拟空间名称 如workon py3_django
(4)退出虚拟空间
deactivate
(5)删除虚拟空间
rmvirtualenv py2_django
(6)django框架安装到虚拟环境
查看:pip list 查看是否有django版本
安装:pip install django==1.8.2
2.Django项目创建
django-admin startproject 项目名称,如django-admin startproject djangotest
项目里面再创建应用,一个项目对应多个应用,一个应用对应一个业务模块
cd djangotest
创建应用:python manage.py startapp Book 创建一个Book应用
3.导入pycharm报一些包找不到
这是因为python解释器使用的路径不对,pyCharm中->settings->Project Interpreter->查看是否有相关的包引入,如果没有,但是又确实在虚拟环境中下载了,那么linux操作系统的话,可以在虚拟环境中执行:which python 查看python的具体路径
windows没有这种命令,可以写个bat文件,如Which.bat:
@echo off
echo %~dp$PATH:1
@echo on
然后执行:d:\Which.bat java.exe,一般会在:C:\Users\用户名\Envs\py3_django_test\Lib\site-packages
4.运行server
进入到项目根目录,如cd djangotest,然后执行:python manage.py runserver 8000,在pycharm的terminal中也可以进行设置,只是需要进入到相应的虚拟环境中workon一下,然后启动即可
5.Django进行数据库开发的提示
6.数据库开发步骤
(1)定义模型类(2)模型迁移(3)
(1)定义模型:model可在model.py中进行编写,如下图
(2)模型迁移,模型类到表
a>生成迁移文件
python manage.py makemigrations
b>执行迁移文件,映射成表
python manage.py migrate
执行完毕之后,在项目工程目录下就有个db.sqlite3这个数据库,生成的表已经在这个数据库中了,将这个数据库直接拖到pycharm的databases中即可进行视图展示
7、站点管理
应用下面有admin.py
(1)管理页面本地化
settings.py中做此修改
(2)创建管理员
python manage.py createsuperuser 用户名:python 密码123456
创建成功后,可以看到 urls.py中有相关的url映射,已经有了admin,访问路径就是域名/admin即可
然后重新启动:python manage.py runserver
访问:127.0.0.1:8000/admin输入用户名和密码就可以查看了,并且能够进行相关的数据库曹组
(3)注册模型类
在admin.py文件中进行注册
from django.contrib import admin
from Book.models import BookInfo,PeopleInfo
# Register your models here.
#注册书籍信息模型类
admin.site.register(BookInfo)
#注册人物信息模型类
admin.site.register(PeopleInfo)
(4)自定义展示页面
如果要展示多个字段列表,需要继续修改admin.py
from django.contrib import admin
from Book.models import BookInfo,PeopleInfo
# Register your models here.
class PeopleInfoAdmin(admin.ModelAdmin):
"""人物信息模型类站点管理类"""
list_display = ['id','name','gender','book']
#注册书籍信息模型类
admin.site.register(BookInfo)
#注册人物信息模型类及站点类
admin.site.register(PeopleInfo,PeopleInfoAdmin)
(5)定义视图
a>在项目下的urls.py中增加如下,表示,除了admin之外的,会跳转到Book.urls
b>Book中新建urls.py,增加内容,正则表达式必须是:以什么开始,已什么结束
(6)模板定义
a>创建一个模板,可以在项目根目录下建一个templates目录,然后下面建立应用目录以及html模板文件如:templates/Book/test.html
b>修改settings.py文件,将根目录指向templates目录
c>修改test函数,填写渲染路径和传入的参数
def bookList(request):
"""请求到视图"""
#数据库查询所有book_list = [BookInfo,BookInfo]
book_list = BookInfo.objects.all()
context = {
"bookList":book_list
}
# 调用模板,未接受参数
# return render(request,'Book/test.htm')
return render(request,'Book/booklist.html',context)
booklist.html通过
<body>
<ul>
{% for book in bookList %}
<li>{{ book.name }}</li>
{% endfor%}
</ul>
</body>
这个去获取到后台传入的值
d>访问路径如localhot:8000/booklist/1/ 能够获取到1下的所有书籍
urlpatterns = [
#正则匹配,如果匹配成功,直接调用制定的视图
url(r'^test/$',test),
url(r'^booklist/$',bookList),
url(r'^(\d+)/$',peopleList),#正则匹配组,直接自动传过去数字参数
]
def peopleList(request,book_id):
#获取book_id:通过正则的组取值,并自动传入
#查询出用户点击的那本书
book = BookInfo.objects.get(id=book_id)
people_list = book.peopleinfo_set.all()
context = {
"people_list":people_list
}
#调出模板并渲染
return render(request,'Book/peoplelist',context)
#查询出书里面的人物信息
Python干货总结篇:列表、字典、集合、元组的区别与用途_python集合-优快云博客
一、特点与用途
1.列表:a=[ ]
特点:
有序:列表中的元素有固定的顺序,可以通过索引访问。
可变:列表是可变的,可以修改、添加和删除元素。
允许重复:列表允许重复的元素。
用途:
适用于需要保持元素顺序并且可能会修改或扩展的场景。
例如,存储一系列的数字、名字等。
示例:
list = [1, 2, 3, 4, 5] #创建列表:list
list.append(6) # 添加元素
print(list) #输出列表list
2.集合:a={ }
特点:
无序:集合中的元素没有固定顺序。
可变:集合是可变的,可以添加和删除元素。
不允许重复:集合中的元素必须是唯一的,重复元素会被自动去重。
用途:
适用于需要对元素进行去重,或者需要执行集合操作(如并集、交集、差集等)的场景。
例如,存储一组不重复的元素、去除重复的值等。
示例:
set = {1, 2, 2}
set.add(4) # 添加元素
print(set) #输出{1, 2, 4}
3.字典:a={key:value}
特点:
无序(但在Python 3.6 及以上版本中,字典是插入有序的)。
键值对存储:字典是由键(key)和值(value)对组成的,每个键都是唯一的。
可变:字典是可变的,可以修改、添加和删除键值对。
用途:
适用于需要通过特定键快速访问对应值的场景。
例如,存储映射关系,如用户信息、配置文件等。
示例:
dict = {"name": "Alice", "age": 25}
dict["age"] = 26 # 修改值
print(dict["age"]) #输出26
4.元组:a=( )
特点:
有序:元组中的元素有固定的顺序,可以通过索引访问。
不可变:元组是不可变的,一旦创建,不能修改、添加或删除元素。
允许重复:元组允许重复的元素。
用途:
适用于需要保证数据不被修改的场景。
例如,存储一组相关数据(如坐标、日期等),或者需要作为字典的键。
示例:
tuple = (1, 2, 3) #元组一旦创建,不能修改
print(tuple) #输出(1, 2, 3)
二、图表总结
数据结构 是否有序 是否可变 是否允许重复 适用场景
列表 (list) 是 是 是 需要顺序、可修改的数据,如存储一系列元素。
集合 (set) 否 是 否 需要去重或者进行集合操作(并集、交集等)。
字典 (dict) 否 是 否(键是唯一的) 存储键值对,快速查找、存储映射关系。
元组 (tuple) 是 否 是 不需要修改的数据,如不可变的记录或作为字典键。
简单来说,选择适合的容器类型取决于具体的应用场景和操作需求。
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.youkuaiyun.com/2301_81711570/article/details/144197473