当前位置:   article > 正文

pycharm+django+mysql——简易学生管理系统(二)连接数据库与用户注册2021-02-03_pycharm id等于midelsautofield

pycharm id等于midelsautofield

pycharm+django+mysql——简易学生管理系统(二)

1.连接数据库并完善表格以及字段

上文中,我们已经设置了settings,要和数据库相连接,必须存在这么一个数据库,在MySQL中新建一个与settins中同名字的数据库。

创建好数据库后,创建表格不需要在MySQL中,在models.py文件中,创建数据库表格:

from django.db import models
#Creation
class student(models.Model):#类名字对应着表名,下面的变量就是属性
    objects = models.Manager()
    id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=64,null=False)
    age = models.IntegerField()
    #user_id = models.CharField(max_length= 64)
    user_password = models.CharField(max_length=64)
    email = models.CharField(max_length=64)
(1)执行python manage.py makemigrations,将模型类加载的__initial__.pyz中
(2)执行python manage.py migrate,将所有表迁移到我们创建的数据库中,返回到数据库刷新后可以看到子的表了
(3)AutoField()  根据已有id自增长的整形唯一字段,一般每个model类不需设置该字段,因为django会为每个model自动设置。django默认会为每个model类添加如下语句:id = models.AutoField(primary_key=True)  当其他字段添加了primary_key属性,则不会创建id字段了每个model类仅能有一个主键
(4)[详细字段函数设置参考](https://blog.csdn.net/pugongying1988/article/details/72870264)https://blog.csdn.net/pugongying1988/article/details/72870264
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

2.注册功能

在开始编写之前,在app中设置新的urls,方便路由导入

urls配置

项目主urls:

	from django.conf.urls import url
	from django.contrib import admin
	from django.urls import path,include#include可以导入到自己的app路由
	from studentapp.views import index
	urlpatterns = [
		    #url(r'^index/$', index),
		    url(r'^studentapp/', include("studentapp.urls")),#方便导入到app中的urls也就是在输入网址的时候,127.0.0.1:8000/studentapp/+index(或者其他的)就可以在app中寻找路由从而调用对应的views中的函数
		]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

studentapp.urls设置:

	from django.conf.urls import url
	from studentapp import views
	from studentapp.views import register
	
	urlpatterns = [
	    url(r'^index/$', views.index),
	    url(r'^login/$', views.login),
	    url(r'^register/$', views.register),
	    url(r'^home/$', views.home),
	    url(r'^add_student/', views.add_student),
	    url(r'^student_list/', views.student_list),
	]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

views.py

直接写创建对应的函数:

from django.http import HttpResponse, HttpResponseRedirect
from django.shortcuts import render, redirect
from studentapp import models
# Create your views here.
def index(request):
    return render(request,"index.html")
def register(request):
    # 解读request
    if request.method == "POST":
        # 获取表单内容,且字段要和模板文件对应
        student_name = request.POST.get("name")
        student_age = request.POST.get("age")
        student_email = request.POST.get("email")
        student_password = request.POST.get("password")
        # 保存到数据库
        models.student.objects.create(name=student_name, age=student_age, user_password = student_password, email = student_email)
        #return HttpResponse("注册成功!!")
    return render(request,"index.html")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

templates中的html

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div>
        <form action="/studentapp/login/" method="POST">
        <!--防止被攻击-->
        {% csrf_token %}
        <p>
            email<input type="text" name = "emil">
        </p>
        <p>
            密码<input type="text" name = "password">
        </p>
        <p>
            <button type = "submit" class = "btn">登陆</button>
        </p>
    </form>
    </div>
    <div>
<!-- action指向要把数据传到 注册路由 对应views的注册函数,还有其他的方法,建议可以多多尝试-->
        <form action="/studentapp/register/" method="POST">
        <!--加csrf_token防止被攻击-->
        {% csrf_token %}
        <p>
            姓名<input type="text" name = "name">
        </p>
        <p>
            年龄<input type="text" name = "age">
        </p>
            <p>
            email<input type="text" name = "email">
        </p>
        <p>
            密码<input type="text" name = "password">
        </p>
        <p>
            <button type = "submit" class = "btn">注册</button>
        </p>
    </form>
    </div>
</body>
</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46

3. 补充

它的原理,form表单将四个字段‘name’,‘age’,‘email’,'password’封装好,通过action中的路由进行传递,系统在找的时候,根据"/studentapp/register/"然后顺序是:

	主urls——>studentapp.urls的url(r'^register/$', views.register),——>views.py中的register函数,
	通过如下代码可以获取对应的字段,字段一定要与html端接受时的字段一样:
	if request.method == "POST":
		student_name = request.POST.get("name")
        student_age = request.POST.get("age")
        student_email = request.POST.get("email")
        student_password = request.POST.get("password")
     再通过如下代码保存到数据库中:
     models.student.objects.create(name=student_name, age=student_age, user_password = student_password, email = student_email)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

经过上述步骤,就已经完成了注册功能,设计的时候建议从使用者的角度出发,先html,后路由,最后views函数
pycharm自带工作台,如图:
在这里插入图片描述
由于我是先建立的python项目,所以我的应该起初是在student_system中,一定要进入到studentsys这个django项目里才能使用到manage.py文件,它与manage.py同级,和doc命令一样 "cd ####"就可以进入了,输入

python manage.py runserver
  • 1

启动后,打开浏览器,输入

127.0.0.1:8000/studentapp/index/
  • 1

后回车,完成,可进行相关注册测试,如果注册成功(如果不报错肯定一次性成功),你可以让它直接进入到管理主页面或者重新返回index.html,在return render处修改即可。

转载请注明出处,希望对你有所帮助,前端很low,所以设计自行解决,我就不花里胡哨了。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/154005
推荐阅读
相关标签
  

闽ICP备14008679号