[项目]Djanjgo+python+mysql8

一,在pycharm创建新的django项目

new project可以选择django,然后选择虚拟环境django

1.1编辑settings文件

二、创建app

python manage.py startapp app01

然后就有

2.1注册app01

三、设计表结构(django)

django自动创建id且是主键

四、在mysql中生成数据库

4.1连接mysql创建数据库

create database name DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

4.2修改配置文件,连接mysql

4.3django命令生成数据库表

python manage.py makemigrations
python manage.py migrate

到此,表结构创建成功

五、静态文件管理

自己新建文件夹

六、部门管理

体验,最原始方法来做。

django中提供form和modelform组件(方便)

6.1部门列表

先编写html页面里面的herf

添加path

添加对应函数

七、模版继承

7.1定义模版

7.2继承模版

八、新建用户

原始方式思路:不会采用(本质)【麻烦】

  • 用户提交数据没有校验
  • 错误,页面上应该有错误提示
  • 页面上,每一个字段都需要重写
  • 关联的数据,手动去获取并循环展示在页面

django组件

  • Form组件(小简便)
  • ModelForm组件(最简便)

8.1初识Form

8.1.1 views.py

肉眼可见的麻烦,得写很多行,看起来和models.py文件很像——采用ModelForm

class MyForm(Form):
    user = forms.CharField(widget=forms.Input)
    pwd = forms.CharField(widget=forms.Input)
    email = forms.CharField(widget=forms.Input)
    age = forms.CharField(widget=forms.Input)
    account = forms.CharField(widget=forms.Input)
    ctime = forms.CharField(widget=forms.Input)
    gender = forms.CharField(widget=forms.Input)
    dept = forms.CharField(widget=forms.Input)

def user_add(request):
    if request.method == "GET":
        form = MyForm()
        return render(request, 'user_add.html', {"form":form})

8.1.2 user_add.html

<form method="post">
    {{ form.user }}
    {{ form.pwd }}
    {{ form.email }}
    <!-- <input type="text" placeholder="姓名" name="user" /> -->
</form>
<form method="post">
    {% for field in form %}
        {{ field }}
    {% endfor %}
    <!-- <input type="text" placeholder="姓名" name="user" /> -->
</form>

8.2 ModelForm(推荐)

8.2.1 models.py

class UserInfo(models.Model):
    """员工表"""
    name = models.CharField(verbose_name='姓名', max_length=16)
    password = models.CharField(verbose_name='密码', max_length=64)
    age = models.IntegerField(verbose_name='年龄')
    account = models.DecimalField(verbose_name='账户余额',
             max_digits=10, decimal_places=2, default=0)
    create_time = models.DateTimeField(verbose_name='入职时间')

    # 在django中做的约束
    gender_choices = (
        (1, "男"),
        (2, "女"),
    )
    gender = models.SmallIntegerField(verbose_name="性别", 
                                    choices=gender_choices)

8.2.2 views.py

class MyForm(Form):
    xx = form.CharField*("...")
    class Meta:
        model = UserInfo
        fields = ["name","password","age","xx"]

def user_add(request):
    if request.method == "GET":
        form = MyForm()
        return render(request, 'user_add.html', {"form":form})

8.3 编辑用户

  • 点击编辑,跳转到编辑页面(将编辑行的ID携带过去)
  • 编辑页面(默认数据,根据ID获取并设置到页面中)
  • 提交:
    1. 错误提示
    2. 数据校验
    3. 在数据库更新
models.UserInfo.filter(id=4).update(...)

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值