0基础django_家政类网站开发_day2_用户管理

在之前准备工作就绪以后开始进行逻辑代码的编写:

首先是用户的注册:

用ORM操作。

我们在项目文件夹下面创建一个template文件夹(命名随便),作用是存放模板(也就是网页html),然后在setting.py里面设置路径:

 

 

 

完毕。

 

再在项目文件夹下面创建一个static_files的文件夹(命名随便),用来存放

CSS, JavaScript, Images。

1) 在项目根目录下创建static_files目录来保存静态文件。

2) 在demo/settings.py中修改静态文件的两个参数为

STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static_files'),
]

3)此时在static_files添加的任何静态文件都可以使用网址 /static/文件在static_files中的路径 来访问了。

例如,我们向static_files目录中添加一个index.html文件,在浏览器中就可以使用127.0.0.1:8000/static/index.html来访问。

或者我们在static_files目录中添加了一个子目录和文件goods/detail.html,在浏览器中就可以使用127.0.0.1:8000/static/goods/detail.html来访问。

注意

Django 仅在调试模式下(DEBUG=True)能对外提供静态文件。

当DEBUG=False工作在生产模式时,Django不再对外提供静态文件,需要是用collectstatic命令来收集静态文件并交由其他静态文件服务器来提供。

 

 

在template里面新建register.html,简陋的提供界面(先把逻辑功能实现再说美化的事情):

 

 

 

 

再完成这些步骤以后文件的目录分支是这样的

 

 

开始正题:

首先完成用户注册:

1)要判断数据库中是否有已经存在的tel(我是以用户tel作为登录凭证,至于手机短信发送的功能暂不考虑,因为接口要花钱,而且调试也要花时间,以后有空再说。)

 写一个判断tel是否注册了得函数,因为属于用户管理模块里面的,所以我们要在user_management里面的views.py里面写逻辑:

要用到python自带的ORM操作mysql数据库,具体配置可以百度:

 

 1 from django.shortcuts import render, HttpResponse
 2 from django.views import View
 3 from user_management import models
 4 from user_management.models import Userinfo, Usersec
 5 # Create your views here.
 6 
 7 def isRegister(userTel):
 8 #判断电话号码是否被注册#    
 9     objs = Usersec.objects.filter(usertel=userTel)
10     if objs.count() == 0:
11         return False
12     else:
13         return True

 

然后开始进行注册:

我的用户安全信息注册的东西只有tel和psw所以,注册相对而言比较简单:

我用的是CBV模式,可以使代码易于观看:

 1 #CBV模式
 2 class register(View): #继承View类作为父类
 3 #注册账户
 4     #重写父类方法,该方法可作为装饰器功能
 5     # def dispatch(self, request, *args, **kwargs):  # 自定制 dispatch方法,除了可以利用父类中原dispatch方法,还可以自定制处理逻辑
 6     #     obj = super(register,self).dispatch(request, *args, **kwargs) # 传入register对象作为参数,调用父类中的方法
 7     #     return obj
 8 
 9     def get(self,request):  # 请求为get请求时,自动调用该方法
10         return render(request,'register.html')
11 
12     def post(self,request):   # 请求是POST请求时,自动调用该方法
13         userTel1 = request.POST.get('userTel')
14         userPsw1 = request.POST.get('userPsw')
15         if isRegister(userTel1) == False:
16             Usersec.objects.create(           
17                 usertel = userTel1, #表中字段生成到models.py自动变为小写
18                 userpsw = userPsw1,
19             )
20             return HttpResponse('suc')
21         else:
22             return HttpResponse('flase')

新增用户成功。但是只是用户安全表里面有了信息,用户信息表里面还没有任何关联。

所以说我们需要再注册用户的时候,同时在userInfo表里面把用户信息也写入:

法1:注册成功时候,弹出新的页面用户写入自己的信息,然后再提交。(问题1:要是中途用户直接退出,数据库没有收到用户的信息,那么会出现,在usersec表里面有id,而在userInfo里面没有对应得ID,出错),舍弃。

法2:注册成功的时候,同时向数据库userInfo表写入默认值,让用户进行修改。(不会出现数据不对称的情况)

法2又可以通过django后台实现,也可以通过ajax实现,还可以用数据库自带的触发器实现,因为是个人练手网站,所以我考虑直接用django后台来实现。

开始吧,首先创建一个userInfomation.html

 

 

---day2结束。。。踢球去了下午没有码代码...---

 

 

 

 

posted @ 2020-03-20 08:06  FlashOliver  阅读(261)  评论(0编辑  收藏  举报