Django WEB开发(一)一个简单的表单页面

 

环境:

    macos pycharm+navicat+virtualenv python2.7(anaconda虚拟环境)+Django1.9.5

在pycharm中创建new Django project,平台会创建一个Django架构的项目。

1、创建新项目之后,首先,创建app

1)选择Tools>Run manage.py task...之后,页面下部显示出“manage.py@项目名>”:

2)使用startapp命令创建新app,譬如startapp message创建一个名为message的app

可以看到在我们项目的默认app(django_start)下面多了一哥名为message的app。

需要将新建的app加到settings.py的INSTALLED_APPS字典中,如下:

2、作为网站开发,还需要一些创建其他文件夹:

1)需要存放静态文件(css/js等),创建一个文件夹“static”;

2)同时还需要创建日志文件夹“log”保存日志

3)需要创建用户上传的各种文件的目录“media”

注意,当我们的web项目逐渐增大的时候,app数量可能会很多,根目录下app多了,看上去就会混乱,可以将多个app放在新建的‘apps文件夹中

但这样,在manage.py中引入message app中的文件时(譬如views.py),就需要引如全路径(from apps.message import views),有一种巧妙的方法,即将apps文件夹mark为source Root,将其设为全局搜索路径,之后就可以直接引用:“from message import views ”

以上方法只能在pycharm中有效,要想使用命令后运行的时候也有效,就需要在/apps/djangostart/settings.py中设置,将apps作为根搜索路径。


小例子

一个表单

1、将html文件和css文件分别导入到/django_start/templates和/django_start/static/css目录下。

2、设置mysql数据库连接,在settings中找到DATABASES字典,设置如下:

DATABASES = {
    default: {
        ENGINE: django.db.backends.mysql,
        NAME: testdjango,
        USER: root,
        PASSWORD:root,
        HOST:127.0.0.1
    }
}

其中testdjango是我们预先在mysql中创建的一个database(可用navicat创建)

到目前位置,直接Tools>Run manage.py task...会报错,提示‘No module named MySQLdb’,这是因为还没有安装mysql的pyrhon驱动,可在虚拟环境中安装,实际操作中发现conda install mysqlclient(而不是mysql-python包 )有效。

3、Tools>Run manage.py task...

4、在manage.py@django_start> 窗口输入“makemigrations”命令;。

再输入”migrate”命令,此操作之后,在navicat中可以查看到,数据库中多了一些表(默认)。

此时可以run或者debug,运行成功,可以在127.0.0.0:8000端口访问web站点

5、接下来,设置我们的表单页面

1)首先配置urls.py,加入表单url——from

urlpatterns = [
    url(r^admin/, admin.site.urls),#默认生成的url,用于admin后台
    url(r^form/$,    ),# ^,$分别表示开头和结尾

]

其中,url function的第二个参数是一个view对象,本例中应该为表单对应的view

2)进入message app,选择views.py

加一个函数:

def getfrom(request):
    return  render(request,message_from.html)

3)回到urls.py 将函数对象填入url

from message.views import getfrom

urlpatterns = [
    url(r^admin/, admin.site.urls),#默认生成的url,用于admin后台
    url(r^form/$, getfrom  ),# ^,$分别表示开头和结尾
]

此时做debug有可能会发现,127.0.0.1:8000/from/会报错,提示

Exception Type: InvalidTemplateLibrary

即找不到这个template(html文件),其实是需要将template文件的路径在settings文件中注册

4)修改settings文件中的TEMPLATES字典,在‘DIRS’参数中加入html文件路径,操作如下

DIRS: [os.path.join(BASE_DIR, templates)],

其中BASE_DIR在setting中已经定义,表示根目录

5)此时run或者debug ,在127.0.0.1:8000/form会出现我们编写的表单样式:

小节:配置流程

经验分享 程序员 微信小程序 职场和发展