• Django单表的增删改查


    1.Django下载
    命名行
    pip install django==1.11.16
    pip install django==1.11.16 -i https://pypi.doubanio.com/simple/ 
    pycharm
    settings    解释器   点+号    输入Django  选择版本   下载
    2.创建项目
    命令行
    django-admin startproject 项目名
    pycharm
    file   new project   选择Django 输入项目名称 选择解释器 输入APP名称  创建项目
    3.启动项目
    命令行
    切换到项目的根目录下  manage.py
    python manage.py runserver    # 127.0.01:8000
    python manage.py runserver  80  # 127.0.01:80
    python manage.py runserver   0.0.0.0:80  # 0.0.0.0:80
    pycharm
    修改配置
    点三角启动  dj 
    4.配置文件
    数据库 
    静态文件 
    ​ STATIC_URL = '/static/'    # 别名
    ​ STATICFILES_DIRS = [
    ​ os.path.join(BASE_DIR,'static') ,
    ​ ]
    模板 
    ​ TEMPLARTES 
    ​ DIRS  [os.path.join(BASE_DIR, 'templates')]
    中间件
    ​ 注释掉'django.middleware.csrf.CsrfViewMiddleware'
    5.urls.py
    ​ 写url和函数的对应关系
    urlpatterns = [
        url(r'^admin/', admin.site.urls),
        url(r'login/', views.login),
        url(r'index/', views.index),
        url(r'test/', views.test),
    ​
    ]
    6.函数
      参数: request  跟请求相关的内容
    ​ request.method  请求方式    GET POST  PUT 
    ​ request.POST      form表单提交POST请求传递的数据    {}    []  get
    ​ request.GET         URL地址上的参数    {}  
       返回值:
    ​    from django.shortcuts  import HttpReponse,render,redirect 
    ​    HttpReponse('字符串')        返回一些字符串  
    ​    render(request,'模板的文件名')      返回一个完整的HTML页面
    ​    redirect('要跳转的地址')       重定向    Location : 地址   
    7.app
    创建APP
    命令行
    python manage.py  startapp app名称
    pycharm
    tools run manage.py task   startapp app名称
    注册APP
    ​ INSTALLED_APPS = [
    ​ 'app01' 或者 'app01.apps.App01Config', 
    ]
    8.form表单
    action = ''   method ='post'    action 提交的地址  method 请求方式
    所有的input标签要有name属性
    一个input标签的type='submit'  或者  button
    9.get 和 post的区别
    get
    获取一个页面  
    路径/?name=alex&pwd=alexdsb
       request.GET 
    post
    提交数据
    request.POST
    10.Django使用mysql数据库的流程:
    创建一个mysql数据库
    在settings中配置DATABASES
    ​ ENGINE :  mysql ; 
    ​ NAME:   数据库的名称;
    ​ HOST:  IP   '127.0.0.1'   
    ​ PORT:  3306;
    ​ USER:  用户名;
    ​ PASSWORD:  '密码';
    告诉Django使用pymysql连接数据库
    在与settings同级目录下的__init__.py写代码:
    
    import pymysql
    pymysql.install_as_MySQLdb()
    . 写表  在app下的models.py中写类(继承models.Model) 
    
    class User(models.Model):   # 默认表名  app01_user
        name = models.CharField(max_length=32)   # varchar(32)
        pwd = models.CharField(max_length=32)
    ​
        def __str__(self):
            return self.name
    执行数据库迁移的命令
    python manage.py  makemigrations  # 记录models的变更记录
    python  manage.py  migrate        # 把变更记录的操作同步到数据库中
    11.ORM
      对象和关系型数据库的一个映射    同过操作对象的方式操作数据库的内容
    对应关系
    ​ 类        ___>     表
    ​ 对象    ___>    记录  数据行
    ​ 属性    ___>    字段
    ORM的功能:
    操作数据表
    操作记录
    具体的操作
    
    from app01 import models 
    # 获取所有数据
    models.User.objects.all()   # __>  QuerySet 对象列表 
    # 获取单个对象   获取不到数据或者拿到多条数据就报错
    models.User.objects.get(name='alex',pwd='111')   # __> 对象
    # 获取满足条件的所有对象  
    models.User.objects.filter(name='alex',pwd='111')  # __>  QuerySet 对象列表 
    单表的增删改查
    1.展示
    model
    
    class Publisher(models.Model):  # app01_publisher
        pid = models.AutoField(primary_key=True)  # pid 主键
        name = models.CharField(max_length=32)  # 出版社名称
    ​
        def __str__(self):
            return self.name
    设计URL
    
    from app01 import views
    # 展示出版社
    url(r'^publisher_list/',views.publisher_list ),
    写函数
    
    from app01 import models
    # 展示出版社
    def publisher_list(request):
        # 从数据库获取所有出版社对象
        all_publisher = models.Publisher.objects.all()
        return render(request, 'publisher_list.html', {'all_publisher': all_publisher})
    写模板
    
    <table border="1">
        <tr>
            <th>ID</th>
            <th>名称</th>
        </tr>
    ​
        {% for foo in all_publisher %}
            <tr>
            <td>{{ foo.pk }}</td>
            <td>{{ foo.name }}</td>
            </tr>
        {% endfor %}
    </table>
    模板语法
    {{  变量 }}
    循环   
    ​ {%  for i in  all_publisher %}
    ​ {{ forloop.counter }}   #  当前循环的测试 
    ​ {%  endfor %}
     
    2.增加、删除、编辑
    见代码
    3.新增ORM操作
    
    # 新增数据
    ret = models.Publisher.objects.create(name=new_name)   # ret 是对象
    # 删除数据
    models.Publisher.objects.get(pk=pk).delete()
    # 修改数据
    obj_list = models.Publisher.objects.filter(pk=pk)
    obj = obj_list[0]
    obj.name = new_name  # 内存中修改数据
    obj.save()  # 向数据库提交,保存到数据库中
     
     
    

      

  • 相关阅读:
    ExtJs系列教程
    linux 服务器时间 timedatectl命令时间时区操作详解
    aws CloudWatch Events
    AWS Shield
    aws ssm指令
    failed to set bridge addr: "cni0" already has an IP address different from 10.244.0.1/24
    AWS Systems Manager
    Amazon Inspector
    AWS 安全培训
    Amazon Inspector
  • 原文地址:https://www.cnblogs.com/PythonMrChu/p/10065488.html
Copyright © 2020-2023  润新知