Django的一些基本配置

1 Django的安装:

  可以使用pip也可以是用pycharm安装

  1 pip install django==1.1.9(版本号自己指定)

  2 pycharm安装

 这里指定安装源,最好切换到国内

创建django项目:

  可以使用命令行创建,也可以使用pycharm创建

  1 命令行创建

     django-admin startproject 项目名称   

    如果报错 python中的script文件夹的路径配置环境变量中的基本配置,因为此文件夹下存在django-admin.py文件

  2 pycharm创建:  

     File--new project--django---然后选择python解释器

目录结构说明:

Setting django项目的配置文件

Urls 是指定路径和函数(django中叫视图)的对应关系

Wsgi  负责socket通讯

4 基本使用:

       urls.py中的urlpatterns列表,根据请求首行中的路径和接口做一个对应(映射)关系,一个http请求中含有请求首行,请求头,请求体,也就是接口地址中

      HttpResponse 指定回复http协议,且返回的是一个字符串

启动django项目:

  可以使用命令行启动也可以使用pycharm启动

  1 命令行启动:

    cdmanage.py文件所在目录,然后python manage.py runserver ip:port

  2 pycharm启动:

  

templete配置:

 

导入render 用于返回文件

 这里 'xxx/one.html'  其实django会根据你配置的templete路径下查找

 

static配置:

    然后在html文件引入的时候 将static的路径配上就行了

创建app项目:

  可以理解为app就是其中一个应用或者子系统

  

  创建命令---》python manage.py startapp app_name 

   app目录说明:

    1 migrations    数据库 表相关

    2 apps         app配置相关

    3 models       字段检查相关

    4 tests         测试相关

    5 views         app  视图函数相关

  在django中创建完app之后要在django中注册,让django知道app在哪里

 

django中的orm:

  Python语法 自动翻译成 sql语句,为什么会有这个呢?因为程序员写sql水平层次不齐,所以有的人写出来的sql效率就比较低。

    这个有点像js和jQuery的关系

Jquery

DOM

$(‘#d1’)

 document.getElementById(‘d1’)

  django默认的是sqlite数据库,我们要切换到mysql数据库,下面是配置。当然如果你使用的python3首先要安装pymysql

  pip install pymysql

然后在app下的__init__.py中做些变更,实际就是告诉django,更改数据库默认配置为pymysql,替换掉mysqldb

相关app下的models.py中创建 相关表和字段

类名就是表名,里边的字段就是表中的字段

命令行创建表

Python manage.py makemigrations  

相当于记录了models文件中的操作可以在migrations中看到 此时有2条记录只要以后改变了表中的代码 就必须先执行此命令

Python manage.py meigrate

这一步才是真正的执行

如果要进行删除表操作 只需要在model.py文件中注释掉或者删掉代码,然后重复执行以上两句命令

 

pycharm连接mysql数据库:

默认下载驱动 测试连接如果失败 检查 你的账号登录地址 mysql中看下mysql库下的-use表中看下 有没有限制ip登录 或则 驱动不匹配

mysql中 下载,默认下载最新的

有可以 手动指定版本

 

在弹出的框中可以直接写sql

 

Pycharm 录入快捷键

简单的从mysql 数据库取值

Orm  filter get的区别

Get 返回的是一个modles的对象 但是入参只能是主键唯一或者 索引唯一的参数 如果不唯一 则报错

Filter 则没有这样的要求 返回的是一个queryset 类似与列表  可以配合 first()  使用 这样就能使用save等方法

坑:

1 模板语法 的坑

描述:

我希望修改出版社的名称  同时在修改出版社名称的页面,希望能将出版社的就名字带出来 就在模板语法中使用了 name={{book.name}}进行传参 但是发现 在使用 name取值的时候是空  后来经过排查 是模板语法 如果只传一个值  浏览器将name 键名直接改成了id  后来   改成

name={{ book.name }}&id={{ book.id }}    就可以了

也可以 直接传id   然后函数中使用orm   通过id 查值 后返回一个对象使用render传给页面  页面在使用 name 键  取值也可以

  2 Orm 使用fifter  返回的是个queryset 列表 需要使用索引取值   

    另外orm  update  直接通过orm对象 赋值就可以额  

猜你喜欢

转载自www.cnblogs.com/yuan-x/p/12730848.html