一,在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获取并设置到页面中)
- 提交:
- 错误提示
- 数据校验
- 在数据库更新
models.UserInfo.filter(id=4).update(...)