python 包中的API使用方式:
https://blog.csdn.net/betty_xfy/article/details/97660519
quit()方法可以退出python的操作页面
python brew 安装的方式
https://www.jianshu.com/p/89ae79570c6b
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)
#查询出书里面的人物信息