美文网首页
web应用框架——Django实践项目(一)

web应用框架——Django实践项目(一)

作者: 思君_4cd3 | 来源:发表于2020-04-30 17:04 被阅读0次

一.GitHub

1.注册GitHub账户(不具体操作了)

2.下载GitHub客户端

https://desktop.github.com/
下载网站

链接:https://pan.baidu.com/s/1mDgDZkTJlvQmq46T2pjslA
提取码:lhc2
百度云安装包

然后将账号进行登陆

3.建立仓库


4.用GitHub Desktop打开


4.打开文件




我们在这里就可以看到新增的代码啦

二.创建项目

我们需要创建一个Django项目,怎么样创建我们之前讲过(这里用的python是3.7版本)


  • 但是当我们新建完项目时,会发现什么也没有?




  • 打开一个新的项目,然后再找到我们刚刚创建的那个项目地址,再新建一个Django项目(我在别的目录建立了一个项目然后将文件移了过去,也不知道好不好使)


  • 运行,很好,运行成功了,接着来


三.搭建项目

1.安装依赖

  • 在MXOline目录下新建一个requirements.txt文件


  • 在这个文件中写入你想要安装的依赖包
mysqlclient
Pillow
redis
django-pure-pagination
django-simple-captcha
  • 执行命令安装依赖
pip install -r requirements.txt
  • 查看依赖是否安装成功
pip list

2.配置数据库

  • 删掉这个文件


  • 打开phpStudy软件开启数据库
  • 新建数据库


  • 打开MXOline文件夹下的settings.py文件
    删除原数据库链接,链接新建数据库
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'mxonline', # 数据库名字
        'USER':'root',
        'PASSWORD':'root',
        'HOST':'localhost',
        'PORT':3306,
    }
}
  • 将语言改为中文
LANGUAGE_CODE = 'zh-hans'

TIME_ZONE = 'Asia/Shanghai'

USE_TZ = False
  • 运行:http://127.0.0.1:8000/


  • 这个时候,让我们把django换成2.2版本的,卸载之前的django版本
pip uninstall django
  • 安装2.2版本的django
pip install django==2.2
  • 运行程序(显示2.2版本)


  • 访问admin的报错



  • 打开这个命令行


  • 迁移数据库
makemigrations
migrate
  • 刷新数据库


  • 创建超级用户
createsuperuser

3.提交代码到github上

  • 打开GitHub desktop


  • 提交


  • 刷新


4.表单制作

  • 创建app
startapp users
  • 打开MXOline的settings.py文件注册app
'users.apps.UsersConfig',
  • 再次注册app
startapp courses
  • 打开MXOline的settings.py文件注册app
courses.apps.CoursesConfig
  • 管理我们的app



  • 将我们创建的app都移到这个文件夹下




    进行勾选的话,这里注册的信息就会被自动修改


5.注册用户表

  • 查看表属性



  • 覆盖用户表
    打开users文件夹下的models.py文件:
from django.db import models
from datetime import datetime
from django.contrib.auth.models import AbstractUser
# Create your models here.
GENDER_CHOICES = {
    ("male", "男"),
    ("female", "女")
} #枚举类型

class BaseModel(models.Model):
     add_time = models.DateTimeField(default=datetime.now,verbose_name="添加时间")
     class Meta:
         abstract = True #将该基类定义为抽象类,即不生成对应的数据库表
         #只作为一个可以继承的基类
class UserProfile(AbstractUser):
    nick_name = models.CharField(max_length=50,verbose_name="昵称",default="")
    birthday = models.DateField(verbose_name="生日",null=True,blank=True)
    gender = models.CharField(max_length=6, verbose_name="性别", choices=GENDER_CHOICES)
    address = models.CharField(max_length=100, verbose_name="地址",default="")
    mobile = models.CharField(max_length=11, verbose_name="手机号码")
    image = models.ImageField(verbose_name="用户头像",upload_to="head_image/%Y/%m",default="default.jpg")

    class Meta:
        verbose_name = "用户信息"
        verbose_name_plural = verbose_name

    # def unread_nums(self):
    # #未读消息数量
    #     return self.usermessage_set.filter(has_read=False).count()

    def __str__(self):
        if self.nick_name:
            return self.nick_name
        else:
            return self.username
  • 迁移数据库
makemigrations
migrate

这个时候会报错:


  • 打开MXOline文件的settings.py文件,加上这句话
#user表在django中已经注册,appname=user
AUTH_USER_MODEL = "users.UserProfile"

那么这个东西是在那里注册的呢?


  • 然后在执行迁移



    但是依旧会报错



    对于这个错误来说,我们将数据库中的表都删除:


    然后再执行迁移



    迁移成功啦~
  • 生成超级用户


  • 启动程序,进入管理界面


  • 进入到apps/users/admin.py目录下:
from django.contrib import admin

# Register your models here.
from apps.users.models import UserProfile
class UserProfileAdmin(admin.ModelAdmin):
    pass
admin.site.register(UserProfile,UserProfileAdmin)
  • 刷新浏览器页面:



  • 进入到apps/users/apps.py目录下:
from django.apps import AppConfig
class UsersConfig(AppConfig):
    name = 'apps.users'
    verbose_name="用户"
  • 刷新浏览器,变成中文啦



    (此文章仅作为个人学习笔记使用,如有错误欢迎指正~)

相关文章

网友评论

      本文标题:web应用框架——Django实践项目(一)

      本文链接:https://www.haomeiwen.com/subject/gwwvwhtx.html