1.环境搭建
注意:如果嫌麻烦,不要装最新的版本,django使用2.0,因为xadmin的官方branch最新就是支持2.0
1.1 python3.6,pycharm,virtualenv的使用
pycharam快捷键
ctrl+左键
shift+左键
shift+tab
ctrl + H 全局搜索
1.2 MySQL server
注意:(在windows下)
1.还要安装python3.6的连接程序,当在安装时,requirement没有满足时,点击excute可以自动帮忙安装。
2.如果后期需要重新配置,打开mysql installer就可以
3.默认安装路径 C:Program FilesMySQLMySQL Server 8.0in 加到环境变量, 可以在命令行 通过 mysql -uroot -p 命令可以进行登入mysql控制台
1.3 Navicat for mysql
注意:
字符集设置 utf-8 utf_general_ci ,否则中文报错
2.文件目录
project --template:存放模板 放置html --project:项目真正python包 应用的名称默认与项目名称一样 --inti --setting:配置文件 项目全局配置文件 --urls:url 主要的urls配置入口 --wsgi:部署到服务器 Django启动需要的文件。 --manage:启动Django需要的主要文件。(主要的Django命令都通过manage.py运行) -------------------------------------------以上是最根本的目录结构-------------------------------------------- --application app是Django里一个一个应用的文件夹单位。 如何创建应用:通过 Tools -> Run manage.py Task创建app:startapp message 可以看到当输入startapp message之后,创建了message应用。并存放在了与项目目录同级目录。 --migrations:迁移数据库用到 --init 自动生成__init__.py文件表明这是一个包。使得该文件夹可导入。 --model:模型管理文件 --admin:后台管理文件 --view:试图文件 --tests:测试文件 --apps: -----------------------------------------以上是通过命令自动创建的--------------------------------------------- --static 放静态文件 --log --media
注意:
1.前端页面中链接的url路径是 “/”开头,或者 {%url “url的别名”%}
2.新建application:1.startapp name 2.在settings中加入 INSTALLED_APPS
3.新建static目录使用static目录来存放网站的静态文件:js,css,图片等。
注意在Setting中静态文件的配置
STATIC_URL = '/static/'
只说明了目录的名称。并没有指明查找的根路径。添加下面代码,这样就可以让static文件下的其他文件夹可以被找到
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static')
]
4.新建log目录使用log目录来存放网站的日志文件
5.新建media目录使用media目录存放用户上传的图片等资源。
6.为方便管理文件,解决项目大了之后app过多问题新建文件夹 apps,将message文件夹拖入apps文件夹内:会自动生成__init__.py文件表明这是一个包。使得apps文件夹可导入。
6.1将apps目录右键mark成Source Root,如果不这样pycharm会报错,即使你已经执行了第二步。而如果不执行第二步,cmd中会报错
6.2我们在项目的setting文件中配置我们的apps路径:
import sys
sys.path.insert(0,os.path.join(BASE_DIR,'apps'))
7.CTRL-BREAK.可以用ctrl+c 来中断服务
3.配置Django连接Mysql数据库
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'testdjango',
'USER': 'root',
'PASSWORD': '密码',
'HOST': "127.0.0.1"
}
}
更改加密方式:
1.登录mysql,连接用户为root。
> mysql -u root -p
2.执行命令查看加密方式
> use mysql;
> select user,plugin from user where user='root';
3.执行命令修改加密方式
> alter user 'root'@'localhost' identified with mysql_native_password by 'yourpassword';
4.属性权限使配置生效
> flush privileges;
重设mysql8.0的加密方式后,再次启动django服务器就没有任何问题了。
4.migrate和makemigration
makemigrations会在当前目录下生成一个migrations文件夹,该文件夹的内容就是数据库要执行的内容python manage.py makemigrations
migrate就是执行之前生成的migrations文件,这一步才是操作数据库的一步python manage.py migrate
备注:Django每次更新模型都需要执行以上两步,需要注意的是Django模型增加内容需要设定变量的初始值,否则会在第一步出现问题
makemigrations后面也可以加应用名称否则就是对整个项目进行操作
5.xadmin的使用
git clone -b django2 https://github.com/sshwsfc/xadmin.git
pip install git+git://github.com/sshwsfc/xadmin.git@django2 可以用来安装它的依赖包,然后卸载xadmin
1.setting文件中:
sys.path.insert(0,os.path.join(BASE_DIR, 'extra_apps'))
2.setting文件中:
'xadmin',
'crispy_forms'
3.url文件中path('xadmin/', xadmin.site.urls),
使用:在项目中使用xadmin
xadmin就相当于一个数据库管理器
在application文件夹下创建adminx.py文件
2.git clone -b 分支名仓库地址使用Git下载v.2.8.1分支代码,使用命令:git clone -b v2.8.1 https://git.oschina.net/oschina/android-app.git
3.如果想要使用xadmin,记得新建adminx文件。
4.源码安装,与pip安装的区别在于源码安装可以更改源码,进而实现自己的功能就和tensorflow的model一样
5.工作流程
5.1 写model
重写__str__方法,这是因为在后台添加数据的时候,如果不重写,后台会显示
def __str__(self):
return self.name
5.2 写url配置文件
5.3 写view
5.4 写template
5.4.1前端页面放入值
为input系列标签添加value: 使用my_message.name取到我们传递过来的my_message对象的属性值。
<input id="name" type="text" name="name"
value="{{ my_message.name }}" class="error" placeholder="请输入您的姓名"/>
为textarea标签添加值
<textarea id="message" name="message" placeholder="请输入你的建议">{{ my_message.message }}</textarea>
5.4.2form表
post请求要:{% csrf_token %}