admin管理员组

文章数量:1122850


typora-root-url: img

Django学习

1 MVC 与MVT流程介绍

2 安装虚拟环境

2.1 window下安装虚拟环境
  1. 安装python

  2. 创建虚拟环境

    2.1 : 安装 virtualenv

    pip install -i https://pypi.doubanio.com/simple/ virtualenv    
    

    2.2 : 安装 virtualenvwrapper-win

    pip install -i https://pypi.doubanio.com/simple/ virtualenvwrapper-win
    

    2.3 设置环境变量

    计算机-->属性-->高级系统设置-->环境变量-->系统变量-->新建
    变量名 : WORKON_HOME
    路径 : 当前想存储的路径
    

    2.4 基本虚拟环境的命令

    1. 创建虚拟环境
    mkvirtualenv -p python3 glm_test # 加 -p python3 的原因是指定copy的是python3 而不是python2
    2. 进入虚拟环境
    workon 虚拟环境名称
    3. 退出虚拟环境
    deactivate
    4. 删除虚拟环境
    rmvirtualenv 虚拟环境名称
    5. 列出所有虚拟环境列表
    workon
    

    2.5 虚拟环境注意事项

    cmd进入的时候, 必须进入到指定的虚拟环境路径下才能操作东西, 否则, 比如直接在桌面cmd进入虚拟环境, 那么下载的文件之后会在当前环境的路径下下载
    
2.2 ubuntu下安装虚拟环境
  1. 安装 python3 pip3

    # 1. 输入pip3, python3    然后根据提示完成安装
    
  2. 安装虚拟环境

    sudo apt install python3-virtualenv
    pip3 install virtualenvwrapper
    
  3. 配置环境变量

    在home目录创建 没有.bashrc文件的话需要创建这个文件, 有的话就不用

    # 1. 创建文件
    touch .bashrc
    # 2. 查看virtualenvwrapper.sh在哪里
    whereis virtualenvwrapper.sh
    # 3. 进入.bashrc文件
    vi .bashrc
    # 4. 进入编辑模式
    输入字母 a
    # 5. 在最后面加入以下两行
    export WORKON_HOME=$HOME/.virtualenvs
    source /usr/local/bin/virtualenvwrapper.sh
    # 6. 保存退出
    按下 esc, 接着输入 :wq!
    # 7. 使.bashrc生效
    source .bashrc
    
    
  4. 使用虚拟环境

    1. 创建虚拟环境
    mkvirtualenv -p python3 glm_test      # 加 -p python3 的原因是指定copy的是python3 而不是python2
    2. 进入虚拟环境
    workon 虚拟环境名称
    3. 退出虚拟环境
    deactivate
    4. 删除虚拟环境
    rmvirtualenv 虚拟环境名称
    5. 列出所有虚拟环境列表
    workon
    

3 安装mysql

3.1 window下安装mysql
  1. 安装mysql 和 navicat

    具体内容步骤安装包里都有
    
  2. 安装 mysqlclient (驱动)

    # 0. 执行以下代码 
    pip install mysqlclient
    如果没用, 那么用以下方法 : 
    # 1. 进入下面地址, 下载安装包 :
        https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient
    (因为pip的时候一直报错, 根据网上查的, 暂时使用这个方法)
    # 2. 找到 mysqlclient-1.4.6-cp38-cp38-win32.whl 
    (注意点 : 1.32位的, 64不知道为啥没用, 2. cp38代表的是配合python2.8使用)
    # 3. 将下载的文件放至虚拟环境中
    # 4. 在放至文件的虚拟环境目录下执行 :
        pip install mysqlclient-1.4.6-cp38-cp38-win32.whl
    # 5. 安装成功
    
3.2 ubuntu云服务器安装mysql和使用
  1. 安装

    # 分别执行下面三条命令
    sudo apt-get install mysql-server   
    sudo apt-get install mysql-client
    sudo apt-get install libmysqlclient-dev
    
  2. 设置root密码

    # 1. 切换到root目录下 
    sudo su
    # 2. 进入mysql
    mysql
    # 3. 配置数据库root权限,主要是修改密码
    mysql> update mysql.user set authentication_string=PASSWORD('123456'), plugin='mysql_native_password' where user='root';
    # 4、设置生效和退出mysql、root模式
    mysql> flush privileges;
    mysql> exit;
    Bye
    # 5. 重启MySQL服务
    sudo /etc/init.d/mysql restart
    # 6. 重新进入MySQL
    mysql -uroot -p
    # 7. 接着输入刚刚设置好的mysql密码
    
  3. 设置远程连接

    # 1. 执行如下
    sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
    # 2. 点击a, 进入编辑模式
    # 3. 注释掉以下代码
    bind-address = 127.0.0.1
    # 4. 保存退出,
    按下 esc, 接着输入 :wq!
    # 5. 进入mysql服务,执行授权命令
    mysql -uroot -p
    mysql> grant all on *.* to root@'%' identified by '123456' with grant option;
    mysql> flush privileges;
    mysql> exit
    # 6. 重启MySQL服务
    sudo /etc/init.d/mysql restart 
    
3.3 Django使用mysql
3.3.1 navicat使用
  1. 打开navicat 先点击连接, 选择mysql, 配置下数据
  2. 创建数据库
    • 字符集选择 : utf8 – UTF-8 Unicode
    • 排序规则选择 : utf8_general_ci
  3. 新建表, 为id设置主键, 并且设置自动递增, 设置好属性以后, 点击保存
  4. 填充表的数据
3.3.2 Django配置与使用mysql
  1. 在settings中 设置 DATABASES :

    DATABASES = {
         
        'default': {
         
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'family',  # 数据库名字
            'USER': 'root', # 用户
            'PASSWORD': '.123456glm', # 密码
            'HOST': '139.199.81.62', # 主机地址
            'PORT': '3306' # 端口
        }
    }
    
  2. 在views.py中使用

    from django.shortcuts import render
    from django.http import HttpResponse
    from django.db import connection  # 导入连接方法
    
    
    def index(request):
        print(request.GET.get('name'))  # 打印get请求的name参数
        cursor = connection.cursor() # 定义连接自定义
        cursor.execute("select * from person") # 编写自定义sql代码
        rows = cursor.fetchall() # 获取返回的数据
        rows = list(rows) # 整理数据, 默认返回的是元组
        result = []
        for key in rows:
            list_value = list(key)
            result.append(list_value)
        print(result)
        return HttpResponse(result) # 返回所有数据
    
    
    

4 mysql操作

4.1 基础增删改查
# 增加
insert into students(name,age) values('liming',18)  # 或者
insert into students set name='龚帅',age=72;
 - 添加多个 - 
insert into students values('(*  ̄3)(ε ̄ *)',99),('刘诗诗',87),('刘亦菲',76)
# 删除
delete  from students where id=7
 - 删除全部 - 
delete from students
# 修改
update students set name='利明欧巴',age=50 where id=1
- 修改全部 -
update students set name='利明欧巴'
# 查询
- 1. 查询全部 - 
select * from students
- 2. 查询某个 -
select name from student where id=1  
 其中 ( >, <, =, !=, <=, >=) 都可使用
- 3. in - 查询in中集合部分
select * from students where  id in (1,2,3)
- 4. between and - 查询中间部分
select * from students where id between 1 and 3   (13都有)
- 5. not between and - 查询外部部分
- 6. 空值查询 is -
select * from students where name is null
- 7. 过滤重复 -
select distinct age from students
- 8. like关键字查询
% : 任意字符(通配符)
_ : 单个字符(通配符)
select * from students where name like 'g%'   
select * from students where concat(id,username,psw,label,weight) like "%search%"
- 9. and or -
select * from students where name='龚利明' and id=10
- 10 聚合函数
10.1 : count 查询有多少条数据
    select count(*) from students
10.2 : sum 该字段的数字总和    
    select sum(id) from students
10.3 : avg 平均值
10.4 : max 最大值
10.5 : min 最小值
- 11. order by 字段名 [asc | desc]   对查询的字段排序 asc 升序, desc 降序
select * from students  order by age asc
- 12. limit 限制查询结果数量 -  limit [offset] 几条,  offset为偏移数, 不写的话为0 几条是必须写的  
select * from students limit  4   :    查询四条数据, offset已经省略
select * from students limit 4,4  : 从第四条数据开始查询四条数据

4.2 中级mysql操作

5 git

5.1 安装git
sudo apt-get install -i https://pypi.doubanio.com/simple/  git
5.2 我的 github 资料
账户 : 13145846564.@163.com
地址 : https://github.com/gongliming-qd/

6 FTP(fileFreeze)

7 xshell

8 开发阶段 外网能访问的配置

  1. 在settings.py中配置允许外网访问的ip, 或者域名

    ALLOWED_HOSTS = ['139.199.81.62']   或者直接'*'
    
  2. 执行启动项目

    python manage.py runserver 0:8000
    

9 uwsgi

9.1 安装
pip install uwsgi
9.2 创建文件
  • 在项目根目录下创建 uwsgi.ini 文件

  • 并且输入一下内容 :

[uwsgi]
# 使用 nginx 时使用
socket=0.0.0.0:7000
# 直接web服务器使用 python runserver 0:8000
http=0.0.0.0:8000 #(注释这个)
# 项目目录
chdir=/home/ubuntu/all_project/first_one/python_dgango
# 项目中wsgi.py文件的目录, 相对于项目目录
wsgi-file=mysite/wsgi.py
# 指定启动的工作进程数
processes=4
# 指定工作的线程数
threads=2
master=True
# 保存启动之后主进程的pid
pidfile=uwsgi.pid
# 设置uwsgi后台运行, uwsgi保存日志保存
daemonize=uwsgi.log
# 设置虚拟环境的路径
virtualenv=/home/ubuntu/.virtualenvs/glm_django

9.3 启动, 停止
启动:uwsgi --ini uwsgi.ini
停止:uwsgi --stop uwsgi.pid
重启:uwsgi --reload uwsgi.pid
查看进程号:ps -ef|grep uwsgi
查看进程号:ps -aux|grep uwsgi
结束所有进程 killall -s INT uwsgi
 

10 Nginx

10.1 ubuntu安装
sudo apt-get install nginx
10.2 启动,停止,重启
# 启动
service nginx start
# 关闭
service nginx stop
# 重启
service nginx restart
# 修改文件重启 
sudo nginx -s reload
10.3 配置
10.3.1 收集静态文件
# 1. 在 settings.py中指定 STATIC_ROOT
STATIC_ROOT = os.path.join(BASE_DIR, 'static'

本文标签: Django