关于Django初级项目

创建一个初级的Django项目最主要的代码是在models.py文件和views.py文件中操作的

models.py一般写的是用来创建数据库表的类

例如

class BookInfo(models.Model):
    # 图书名
    bookname = models.CharField(max_length=30,verbose_name='书籍名称')
    # 出版时间
    publictime = models.DateField(verbose_name='出版时间',null=True)
    '''
    auto_now=False, 表示每次保存对象,自动设置该字段为当前时间,用于做最后一次修改的时间戳
    uto_now_add=False:表示当前对象第一次被创建时自动设置当前时间,用于创建的时间戳
    当前两个参数是相互排斥的
    '''
    # 阅读量
    count = models.IntegerField(verbose_name='阅读量', default=0)
    # 销量
    seltcount = models.IntegerField(verbose_name='销量', default=0)

    # 逻辑删除
    is_delete = models.BooleanField(verbose_name='逻辑删除', default=False)

    # 制定数据库的表名
    class Meta:
        # 制定数据库表名
        db_table = 'bookinfo'
        # 修改后台管理站点中数据库的名字
        verbose_name = '书籍'
        # 去除后台管理名字中的s
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.bookname

1.这个类包括了数据库表所必要的元素,如BookInfo类要有书名,出版社等等
2.Meta这个类是是来改变数据库表的一些元素,如表名改为bookinfo,不写的话是默认的表名一般是:模块名_类名
3.str魔法方法是自动调用,return用来返回你所希望返回的值

views.py一般是写方法用来连接html文件或者css等,然后通过它使我数据库的信息通过html来展示在网页中

例如:

def index(request):
    # render(request, template_name, context=None, content_type=None, status=None, using=None)
    return render(request,'index.html',{'test':'这是测试文本'})

1.request是一个参数
2.render:Returns a HttpResponse 是返回一个http相应体
3.index.html是一个自己写的html文件
4.{‘test’:‘这是测试文本’}:可写可不写,在html文件的body中写{{test}}
即可在页面中显示:这是测试文本这几个字

在项目的setting文件中需要改的内容
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
     #古老版本 
     #'user'
     #1.10后的版本
     'user.apps.UserConfig',
]

注释后面的是自己加的,格式是 :
模块名.apps.apps文件下的类名(自动生成的)
2.

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        #设置模板的查找路径
        'DIRS': [os.path.join(BASE_DIR,'templates')],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

DIRS需要改,原本是[],templates是自己在项目下创建的包名,此包用来写html页面
3.

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '自己创建的数据库的名字',  #是指数据库的名字
        'USER': 'root', #mysql的用户名
        'PASSWORD': '自己数据库的密码',  #mysql的密码
        'HOST': '127.0.0.1',  #mysql的地址
        'PORT': 3306,  #mysql的端口
    }
}

这个是用来连接自己的数据库,默认是项目自带的db.sqlite3

urls.py文件中加路径
from 模块名 import views
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^index/$',views.方法名),
    
]
  1. r’^index/$'是指:以index开头以/结尾,r是转义,防止单引号里面有特殊意义的字符导致路径解析错误
127.0.0.1:8000/index/  #127.0.0.1是本地地址,8000是默认端口

以上的 r’^index/$'就是指网页上以index/结尾

在admin.py文件中注册自己在models.py中写的类
from 模块名.models import 类名
# Register your models here.
admin.site.register(类名)
运行服务器
python manage.py runserver 8888
#8888是自己指定的端口,不填就默认
数据库表生成后一定要迁移数据库

1.生成迁移文件

python  manage.py  makemigrations

2.执行迁移文件

python  manage.py  migrate

迁移成功并且执行迁移之后,才能真正在数据库产生表

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值