DJango 前三天小结

一 DJango 所有命令:

  1下载:   

控制台:
pip install django==1.11. ​pip install django==1.11. -i 源
解释器:
找到解释器,点击加号搜索django

  2创建项目;

控制台:  
当前创建文件的目录 django-admin startproject 项目名称 (这里创建的项目没有模板文件templates)
pc创建:
 file-->newprojet-->django-->(里面可以直接编辑templatesw和app文件名)

  3 启动项目:

控制台:
切换到项目目录 python manage.py runserver #127.0.0.1:(默认的)
ip和端口可以改: .............192.168.1.1:#192.168.1.1:

  4 创建app :

控制台:
使用python自带控制台就不需要定义当前目录了,直接 manage.py startapp app文件名
pc:
Tools-->run manage.py task -->startapp app名字
app文件下的py文件:
  views.py (写函数)
  models(orm相关)
  admi.py(管理后台)
  apps.py
  tests.py(测试用)

  5 数据库迁移:

python manage.py makemigrations  #会在migration文件下产生一个py文件将models变更记录保存
python manage.py migrate # 同步到数据库

二 django srttings配置

  

NSTALLED_APPS = [

​    'app01'  或者 ‘app01.apps.App01Config’(用pc创建会自带这个)

] 
数据库的配置

​    ENGINE: mysql

​    NAME: 数据库名称

​    HOST:  IP  

​    PORT: 

​    USER: 用户名

​    PASSWORD: 密码
静态文件

​    STATIC_URL = '/static/'   # 别名  注意你的静态文件外接开头都要使用/static/
​ STATICFILES_DIRS = [ ​ os.path.join(BASE_DIR,'static'),(可以配置多个,但他会按顺序找,找到一个就不找了) 
​ os.path.join(BASE_DIR,'static1'), ​ ]
中间件:

​    注释csrf的中间件      ——》 可以提交POST请求
TEMPALTES

```
'DIRS': [os.path.join(BASE_DIR, 'templates')] # 检查你的模板配置是不是这个路径,一般没错
```

三 django 使用mysql数据库:

  1控制台创库  

  2 配置; django默认使用他自己的 sqlite3数据库

  3 告诉django 使用pymysql连接数据库(

    在settings.py同级目录下__inin__,py中写

   import pymysql
pymysql.install_as_MySQLdb() 

  4  在app下的models.py中写类(继承models.Model):

   

from django.db import models

class BookManage(models.Model):

    pid=models.AutoField(primary_key=True) # 设置主键 并且让其自增
name=models.CharField(max_length=,unique=True) #设置名字字段,并且让其唯一 def __str__(self): return self.name

  5  执行数据库迁移的命令   

  python manage.py makemigrations  # 将models变更记录保存到migrations

   python manage.py migrate    # 将变更同步到数据库中

四  get和 post

  get: 获取一个页面

    在地址栏里输入回车

    form 表单 默认就是get

    a标签

    重定向也算是get(跳转)

  get提交数据:  127.0.0.1:8000/edit_publisher/?pk=3&k1=v1

    获取get数据:  request.GET .get(''pk'') #返回的是一个类似字典的东西 所以可以直接通过get(键)来获取数据 ,也可以通过索引来取

  post: 提交数据:

    form表单

五 orm (对象关系映射)

    对应关系:

       类------>表

       对象----->数据

       属性----> 字段

from app01 import models # 先导入modes模块

曾:

models.Publisher.objects.create(name='xxxxx出版社')   ——》返回字符串对象

查:

​    models.Publisher.objects.get(pk=)     —— 》返回字符串对象  #dasdggfrg <class 'app01.models.BookManage'>

​    models.Publisher.objects.filter(pk=)  ——》 返回单行对象列表 

​    models.Publisher.objects.all()      ——》 返回全部对象列表  

删:

models.Publisher.objects.get(pk=).delete() 

​    models.Publisher.objects..filter(pk=).delete() 

改:

  

obj = models.Publisher.objects.get(pk=) # 返回的是对象

​    obj.name = 'xxxxx'  

​    obj.save() 

六  模板语法:

  

render(request,'模板的文件名',{ 'new_name': 'xxxxx','all_publisher' : all_publisher })

.变量

{{  new_name  }}  ——》 xxxxx

.for循环

{%  for i in all_publisher %}

​    {{  forloop.counter  }}

​    {{  i  }}

​    {{  i.name  }}

​    {{  i.pid }}   {{  i.pk }}

{% endfor %}

    

    

  

上一篇:LeetCode(2) || Add Two Numbers && Longest Substring Without Repeating Characters


下一篇:PS作业