完成基本的创建项目、用户注册、登录、注销功能
- 创建Django项目,创建df_user的App
- 创建静态文件夹static(跟manage.py保持在同一级别下)
- 复制静态文件(css + images+ js)到static路径下
- 修改settings.py文件
- 修改templates路径
- 修改数据库
- 新添加静态文件加载路径
- Pycharm连接mysql数据库以及完成mysql数据库初始化
- 安装Python下的MysqlClient
- 点击下载文件(图片适用于Py3.5_64位.3)
(可选)其他学习参考:点击参考
- 手动进行pip安装
# 进入python3的安装目录的Scripts目录
# 我的是: E:\PyCharm 2017.2.4\Python3.2.5\Scripts
pip3 install mysqlclient-1.4.2-cp35-cp35m-win_amd64.whl
- 修改路由配置manas/urls.py
- 添加df_user/urls.py文件
- 配置df_user/urls.py文件(需要导入df_user/views.py)
- 配置df_user/views.py
- 复制df_user模板到templates/df_user目录
(可选--实际中可以直接复制文件,项目中学习Django的HTML模板化操作)
(可选--实际中可以直接复制文件,实际的HTML中以变量的形式传递参数过去的)
- 创建模板类df_user/models.py
完成表的创建
python manage.py makemigrations # 生产一个py文件
python manage.py migrate # 创建表空间
- 启动项目
python manage.py runserver 9999
- 界面显示
http://127.0.0.1:9999/user/login/
注册成功后跳转登录界面:
- 记录问题:
问题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
原因定位: 子App的urls.py里面也有一个admin的路由信息,删除即可
问题2: 误删除migrations目录后,无法初始化数据库
重新创建一个python目录,命名为migrations目录后,重新命令执行
python manage.py makemigrations # 生产一个py文件
python manage.py migrate # 创建表空间
其他操作(命令操作)
创建Django的App
python manage.py startapp df_user
添加新App到Django(修改setting.py)
创建表完成
python manage.py makemigrations # 生产一个py文件
python manage.py migrate # 创建表空间
模板语言
# 继承某个模板
{% 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:", "