django学习之路01

    技术2022-07-11  106

    我的django学习之路

    1.使用python包下载django

    pip install django

    2.创建django项目

    django-admin startproject mydj #最后的mydj为项目名称

    3.然后进入创建好的项目创建一个app

    mydj>django-admin startapp api

    4.配置文件setting中的信息

    INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'api'#注册APP ]

    5.在项目的总路由做分发路由

    from django.urls import path,include urlpatterns = [ # path('admin/', admin.site.urls), path('api/',include('api.urls')) ]

    6.之后在app中创建一个子路由文件,在这个子路由文件中就可以写我们的路由

    from django.urls import path from api import views urlpatterns = [ path('hello/',views.hello),#每个路由对应一个视图函数 path('index',views.index) ]

    7.对应相关视图函数

    def hello(request): return HttpResponse('hello') def index(request): return HttpResponse('index')

    8.配置好路由和视图我们就可以运行项目了

    python manage.py runserver 0.0.0.0:8000 #runserver后是链接的地址,这里为本地测试地址

    9.记得在setting中设置模板文件位置

    'DIRS':[os.path.join(BASE_DIR,'templates')]

    10.静态文件信息配置

    STATIC_URL ='/static/'#别名 STATICFILES_DIRS = [ os.path.join(BASE_DIR,'static'), ]

    也可以写成cbv形式,达到简洁与清晰的目的

    1.路由写法

    urlpatterns = [ path('user',views.UserView.as_view()) ]

    2.对应视图类

    class UseView(views.View): def get(self,request,*args,**kwargs): return HttpResponse('get') def post(self,request,*args,**kwargs): return HttpResponse('post') def put(self,request): return HttpResponse('put') def delete(self,request): return HttpResponse('delete')

    3.配置数据库信息

    DATABASES ={ 'default' : { 'ENGINE':'django.db.backends.mysql', 'NAME': 'hello',#库名 'USER': 'root',#账号 'PASSWORD':'root',#密码 'HOST':'127.0.0.1',#IP地址 'PORT':'3306',#端口号 "OPTIONS":{"init_command":"SET default_storage_engine=INNODB;"} } }

    4.在项目的init初始化文件中加载数据库配置信息

    import pymysql pymysql.install_as_MySQLdb()

    5.配置模型类models

    from django.db import models #Create your models here. class Teacher(models.Model): #db_column为数据库表头名,verbose_name为后台页面列表中显示的字段名 tname = models.CharField(max_length=20,db_column='名字',verbose_name='名字') tgender = models.BooleanField(default=True,db_column='性别',verbose_name='性别') tid = models.CharField(max_length=20,db_column='职工号',verbose_name='职工号') isDelete = models.BooleanField(db_column='是否删除',default=False)

    6.生成迁移文件,

    python manage.py makemigrations

    7.执行迁移

    python manage.py migrate

    8.操作数据库

    models.Register.objects.create( username=username,password=password, prop=prop,name=name,sex=sex, age=age,company=company,duty=duty, phone=phone,desx=desc, ) #查找 obj = models.Register.objects.filter(username=jack).first() obj = models.Register.objects.get(id=3) obj = models.Register.objects.all() #修改内容 models.Register.objects.filter(username=username).update( prop=prop, name=name, sex=sex, age=age, company=company, duty=duty, phone=phone, desc=desc, ) #删除 obj = models.Reqister.objects.get(id=3) obj.delete() models.Reqister.objects.get(password='hehe').delete()

    9.django配置数据出现问题之重置migration(django项目在执行python manage.py migrate 进行表迁移时报错)

    python manage.py migrate --fake

    10.重新配置migrate信息

    python manage.py migrate #创建表结构 python manage.py makemigrations api #让django知道我们的模型有一些变更 python manage.py migrate api #创建表结构

    11.重新配置后也还会出现问题,有个方法是利用sqlmigrate修改应用名,把app表添加到数据库中,这样在数据库可视窗口看到数据表了

    python manage.py sqlmigrate your_app_name 0001
    Processed: 0.010, SQL: 9