Django 示例

Django 示例

完整的登录示例

完整的登录示例

    form表单使用的注意事项:
        1. action="" method="post"     action 提交的地址  method 请求的方式
        2. input标签要有name属性
        3. 有一个input的类型是sumbit  或者 button按钮
    
    注释掉settings.py中的MIDDLEWARE中的'django.middleware.csrf.CsrfViewMiddleware'
    就可以提交post请求
    
    GET和POST的区别:
        1. GET  获取一个页面
            login/?user=alex&pwd=alexdsb
            在Django中获取数据 
                request.GET  {}   
                request.GET['user']
                request.GET.get('user')
                
        2. POST   提交数据
            数据不可见 请求体中
            在Django中获取数据 
                request.POST  {} 
                request.POST['user']
                request.POST.get('user')	

APP


创建APP
    1. 命令行:
        python manage.py startapp app名称
        
    2. pycharm
        tools  run manage.py tsak  
        startapp app名称
        
注册app
    INSTALLED_APPS 列表中添加 
        'app01',
        'app01.apps.App01Config'  # 推荐写法

ORM

ORM介绍和使用
    1. 使用mysql数据的步骤:
        1. 创建mysql数据库
        2. 在settings.py 中配置
            DATABASES = {
                'default': {
                    'ENGINE': 'django.db.backends.mysql',
                    'NAME': 'mysite',
                    'HOST': '127.0.0.1',
                    'PORT': 3306,
                    'USER': 'root',
                    'PASSWORD': '',

                }
            }
        3. 告诉Django使用pymysql模块连接mysql数据库
            在与settings.py同级目录下的__init__.py中写代码:
                import pymysql
                pymysql.install_as_MySQLdb()
                
        4. 在models.py中写类(models.Model):
            class User(models.Model):
                name = models.CharField(max_length=32)
                pwd = models.CharField(max_length=32)
            
        5. 执行数据量迁移的命令:
            python manage.py  makemigrations  # 把models.py的变更记录记录下来 
            python manage.py  migrate     # 把变更记录的操作同步到数据库中
            
            
    2. ORM的操作:
        1. all  获取所有数据
            models.User.objects.all()   ——》 对象列表
            
        2. get  获取某一条数据(没有或者是多个的时候报错)
            models.User.objects.get(name='alex')   ——》 对象 
            
        3. filter  获取满足条件的所有的对象
            models.User.objects.filter(name='alex',pwd='1') ——》 对象列表
            
        4.  obj.name   name字段的值
            obj.pwd   pwd字段的值
            obj.id  obj.pk

图书管理系统

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()  # 向数据库提交,保存到数据库中

创建外键:

class Book(models.Model):
    title = models.CharField(max_length=32, unique=True)  # 书籍的名称
    publisher = models.ForeignKey('Publisher', on_delete=models.CASCADE)  # 关联了出版社
posted @ 2019-08-03 15:41  写bug的日子  阅读(78)  评论(0编辑  收藏  举报