python学习

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)
    #查询出书里面的人物信息

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值