django的安装和使用

Posted hello-kiki

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django的安装和使用相关的知识,希望对你有一定的参考价值。

使用python的包下载管理工具pip安装django

pip install django

创建django项目

django-admin  startproject my01 #后面是项目名称

创建好的项目目录是这样

技术图片

———————————————————————————————————————————————————————————————————————————————

现在我们已经创建好一个django项目

django-admin startapp api

 

然后我们再进项目里创建一个app

技术图片

 

 

创建好APP的目录

技术图片

 

 

 紧接着我们去配置文件setting中注册app

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

 注册好APP之后在项目的总路由做分发路由

from django.urls import path,include


urlpatterns = [
    # path(admin/, admin.site.urls),
     path(api/,include(api.urls))



]

 然后在app中创建一个子路由文件

在这个子路由文件中就可以写我们的路由啦

from django.urls import path
from api import views

urlpatterns = [
 path(hello/,views.hello),#每个路由对应一个视图函数
 path(index,views.index)




]

对应的视图函数

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

写好路由和视图我们就可以运行我们的项目

 

技术图片

 

 

第一条最简单的接口就实现了

技术图片

 

也可以写成cbv的形式,这种写法更简洁,结构更清晰

路由写法

urlpatterns = [

 path(user,views.UserView.as_view())




]

 

对应的视图类

class UserView(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)

 

接下来我们就要配置数据库

在setting中这是系统默认的配置

DATABASES = {
    default: {
        ENGINE: django.db.backends.sqlite3,
        NAME: os.path.join(BASE_DIR, db.sqlite3),
    }
}

而我们要使用高级一点的mysql

则不用它的配置,换我们自己的配置

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;"}
    }
}

然后在项目的Init文件中加上这句代码

import pymysql

pymysql.install_as_MySQLdb()

此时我们的数据库已经配置好了

我们要在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)

生成迁移文件

python manage.py  makemigrations

执行迁移

python manage.py   migrate

此时我们的数据库就生成表了

就可以操作数据库啦

 

models.Register.objects.create(username=username, password=password, 
                                               prop=prop,
                                               name=name, sex=sex,
                                               age=age, company=company, duty=duty,
                                               phone=phone, desc=desc,
                                               )

查找

obj = models.Register.objects.filter(username=xiaoyong).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=‘xiaoli‘).delete()

以上是关于django的安装和使用的主要内容,如果未能解决你的问题,请参考以下文章

如何使用引导程序和 for 循环在 django 中创建电影片段?

Django REST框架--认证和权限

django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)(代码片段

django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)(代码片段

如何在 Django 中显式重置模板片段缓存?

如何在Django视图中使用for循环返回每次迭代[关闭]