Django电商项目---完成注册页面和用户登录day1

完成基本的创建项目、用户注册、登录、注销功能

  • 创建Django项目,创建df_user的App

image

  • 创建静态文件夹static(跟manage.py保持在同一级别下)

image

image

  • 复制静态文件(css + images+ js)到static路径下

image

  • 修改settings.py文件
  1. 修改templates路径

image

  1. 修改数据库

image

  1. 新添加静态文件加载路径

image

 

  • Pycharm连接mysql数据库以及完成mysql数据库初始化

Python学习—Pycharm连接mysql服务器

 

  • 安装Python下的MysqlClient
  1. 点击下载文件(图片适用于Py3.5_64位.3)

     (可选)其他学习参考:点击参考

image

  1. 手动进行pip安装
# 进入python3的安装目录的Scripts目录
# 我的是: E:\PyCharm 2017.2.4\Python3.2.5\Scripts
pip3 install mysqlclient-1.4.2-cp35-cp35m-win_amd64.whl

image

  • 修改路由配置manas/urls.py

image

  • 添加df_user/urls.py文件

image

  • 配置df_user/urls.py文件(需要导入df_user/views.py)

image

  • 配置df_user/views.py

image

  • 复制df_user模板到templates/df_user目录

image

   (可选--实际中可以直接复制文件,项目中学习Django的HTML模板化操作)

image

     (可选--实际中可以直接复制文件,实际的HTML中以变量的形式传递参数过去的)

image

  • 创建模板类df_user/models.py

image

完成表的创建

python manage.py makemigrations     # 生产一个py文件
python manage.py migrate            # 创建表空间
 

image

  • 启动项目

python manage.py runserver 9999

  • 界面显示

http://127.0.0.1:9999/user/login/

image

注册成功后跳转登录界面:

image

 

  • 记录问题:

问题1:执行命令报错: python manage.py makemigrations
WARNINGS:
?: (urls.W005) URL namespace 'admin' isn't unique. You may not be able to reverse all URLs in this namespace
No changes detected

image

原因定位: 子App的urls.py里面也有一个admin的路由信息,删除即可

image

 

问题2: 误删除migrations目录后,无法初始化数据库

重新创建一个python目录,命名为migrations目录后,重新命令执行

python manage.py makemigrations     # 生产一个py文件
python manage.py migrate            # 创建表空间
 
 

其他操作(命令操作)

创建Django的App

python manage.py startapp df_user

image

添加新App到Django(修改setting.py)

image

创建表完成

python manage.py makemigrations     # 生产一个py文件
python manage.py migrate            # 创建表空间
 

image

模板语言

# 继承某个模板
{% extends 'df_user/base_foot.html' %}

# 模板占位
{% block body%}
	XXXX
{% endblock body%}

# 引用变量
{{ title }}
# 取消csrf验证{% csrf_token %}# if判断
{% if request.session.user_name|default:'' != '' %}
	<div class="login_btn fl">
		<a>欢迎您:</a>
		<a>{{request.session.user_name}}</a>
		<span>|</span>
		<a href="/user/logout/">注销</a>
	</div>
{% else %}
	<div class="login_btn fl">
		<a href="/user/login/">登录</a>
		<span>|</span>
		<a href="/user/register/">注册</a>
	</div>
{% endif %}

# for循环
{% for goods in goods_list %}
	<li>
		<a href="/{{goods.id}}/"><img src="/upload/{{goods.gpic}}/"></a>
		<h4><a href="/{{goods.id}}/">{{goods.gtitle}}</a></h4>
		<div class="operate">
			<span class="prize">{{goods.gprice}}</span>
			<span class="unit">{{goods.gprice}}/{{goods.gunit}}</span>
			<a href="#" class="add_goods" title="加入购物车"></a>
		</div>
	</li>
{% endfor %}

# 过滤器
value|default:"什么也没有"
value|date:'Y-m-d'
list|join:", "

转载于:https://www.cnblogs.com/ftl1012/p/10381034.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Django-rest-framework是一个用于构建Web API的强大框架,它提供了许多有用的工具和库,可以帮助我们轻松地构建出一个安全可靠的用户注册和登录系统。 下面是一个简单的Django-rest-framework用户注册与登录的实现: 首先,我们需要安装Django-rest-framework: ``` pip install djangorestframework ``` 接着,我们需要在settings.py文件中添加以下配置: ```python INSTALLED_APPS = [ # ... 'rest_framework', ] REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': [ 'rest_framework.authentication.TokenAuthentication', ], 'DEFAULT_PERMISSION_CLASSES': [ 'rest_framework.permissions.IsAuthenticated', ], } ``` 上面的配置将启用TokenAuthentication身份验证和IsAuthenticated权限,这将确保只有已登录的用户才能访问我们的API。 现在,我们可以创建一个名为"users"的Django应用程序,并定义以下模型: ```python from django.db import models from django.contrib.auth.models import AbstractUser class User(AbstractUser): pass ``` 接着,我们需要定义序列化器来将User模型转换为JSON格式: ```python from rest_framework import serializers from .models import User class UserSerializer(serializers.ModelSerializer): class Meta: model = User fields = ('username', 'email', 'password') extra_kwargs = {'password': {'write_only': True}} def create(self, validated_data): user = User.objects.create_user( username=validated_data['username'], email=validated_data['email'], password=validated_data['password'] ) return user ``` 上面的代码定义了一个UserSerializer序列化器,将User模型转换为JSON格式。我们使用Meta类来指定模型和要序列化的字段,以及一些额外的参数。在create方法中,我们使用create_user方法创建新用户。 现在,我们可以定义视图来处理用户注册和登录请求: ```python from rest_framework import generics, permissions, status from rest_framework.response import Response from rest_framework.authtoken.models import Token from rest_framework.views import APIView from django.contrib.auth import authenticate, login from .models import User from .serializers import UserSerializer class RegisterView(generics.CreateAPIView): queryset = User.objects.all() serializer_class = UserSerializer permission_classes = [permissions.AllowAny] def post(self, request): serializer = self.get_serializer(data=request.data) serializer.is_valid(raise_exception=True) serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) class LoginView(APIView): permission_classes = [permissions.AllowAny] def post(self, request): username = request.data.get('username') password = request.data.get('password') user = authenticate(request, username=username, password=password) if user is not None: login(request, user) token, created = Token.objects.get_or_create(user=user) return Response({'token': token.key}) else: return Response({'error': 'Invalid credentials'}) ``` 上面的代码定义了RegisterView和LoginView视图。RegisterView视图处理用户注册请求,LoginView视图处理用户登录请求。我们在视图中使用UserSerializer序列化器来验证输入数据,并使用TokenAuthentication身份验证来保护API。 现在我们已经完成了用户注册和登录的实现。可以使用POST请求来测试我们的API: - 用户注册: ``` POST /api/register/ { "username": "testuser", "email": "testuser@example.com", "password": "testpassword" } ``` - 用户登录: ``` POST /api/login/ { "username": "testuser", "password": "testpassword" } ``` 如果登录成功,API将返回一个包含Token身份验证密钥的JSON响应。现在,我们可以将此密钥用于所有受保护的API请求中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值