精华内容
下载资源
问答
  • I can move to a python project directory (say c:\www\myproject) and then issuepython manage.py shelland then I can use all modules from django project, say the following piece of commands from the she...

    I can move to a python project directory (say c:\www\myproject) and then issue

    python manage.py shell

    and then I can use all modules from django project, say the following piece of commands from the shell command:

    import settings

    from django.template import Template, Context

    t=Template("My name is {myname}.")

    c=Context({"myname":"John"})

    f = open('write_test.txt', 'w')

    f.write(t.render(c))

    f.close

    now, when I tried to collect all my commands into a python script, say "mytest.py", I cannot execute the script. I must missed something important.

    I issued python mytest.py

    then I got Import error: could not import settings Is it on sys path?"

    I'm in the project directory where settings.py resides.....

    Could some one help me out?

    thanks.

    解决方案# myproject/myapp/management/commands/my_command.py

    from django.core.management.base import NoArgsCommand

    from django.template import Template, Context

    from django.conf import settings

    class Command(NoArgsCommand):

    def handle_noargs(self, **options):

    t=Template("My name is {myname}.")

    c=Context({"myname":"John"})

    f = open('write_test.txt', 'w')

    f.write(t.render(c))

    f.close

    And then (if you follow the docs) you will be able to execute the command in the following fashion:

    python manage.py my_command

    展开全文
  • php调用python脚本起初是为了实现一个小需求,想要在JQuery执行的AJAX异步请求时在服务器端调用执行Python脚本。而Windows服务器端部署的WEB环境是Apache+PHP,在AJAX异步请求时根本不能直接调用Python脚本。因为web...

    c7af8da291c7db4deae54cbec0542821.png

    php调用python脚本

    起初是为了实现一个小需求,想要在JQuery执行的AJAX异步请求时在服务器端调用执行Python脚本。而Windows服务器端部署的WEB环境是Apache+PHP,在AJAX异步请求时根本不能直接调用Python脚本。

    因为web开发语言是php而非Python的Django和Flask等开发框架。AJAX是可以调用执行服务器端的脚本文件,但它的本质仍是HTTP的请求。

    所以就只能在HTTP请求中想办法调用Python脚本,也就在PHP程序中调用执行python脚本。

    这里就要用到PHP的内置函数exec() 和system() ;

    PHP的exec() 和system() 函数区别:

    (1)system()

    原型:string system (string command [, int return_var])

    system()函数很其它语言中的差不多,它执行给定的命令,输出和返回结果。

    (2)exec()

    原型:string exec (string command [, string array [, int return_var]])

    exec ()函数与system()类似,也执行给定的命令,但不输出结果,而是返回结果的最后一行。

    可以看出两个函数的区别就是PHP在调用执行外部命令后,system()函数将执行的结果输出并返回给PHP程序。而 exec() 函数在调用执行外部命令后不会将结果输出,只是返回结果。

    程序代码实现和对比:

    (1)in.php程序使用exec()函数代码及解析:

    326d742963e049eb1a497e4e34d09922.png

    (2)test.py程序代码:

    2bfaedcfd776a89e49790d17549be171.png

    (3)PHP程序执行后效果1:

    076cc8c82f1f98dcc04a031d7d065e33.png

    这样就利用exec()函数实现了对python脚本的调用,下面说一下将in.php程序中的exec()函数替换成system()函数后的执行效果。

    (4)in.php程序使用system()函数代码及解析:

    572aa270a27407ba45bea34255fd6671.png

    (5)PHP程序执行后效果2:

    c9f32adc03d94d125ae262d024fe5d2a.png

    可以看出使用system()函数时,执行python程序时不但返回结果,而且将结果输出了,而exec()函数只是返回结果,没有输出。

    扩展应用:(php web开发数据调用)

    想要在网页上显示其它网站上的数据内容时,都需要网站提供数据的调用接口直接调用,如果没有接口,就需要用爬虫将数据爬回来后保存到数据库,在用程序从数据库中取出数据展示出来。(当然也可以用到php的curl库进行数据爬取后进行展示,但是个人认为在编程语言中做爬虫最简单并且强大的还是Python),而如果在PHP程序中直接调用python脚本进行爬虫,然后再将数据展示到网页上,这样就可以省去插入数据到数据库和从数据库读取数据的过程,这种做法对一些实时数据的爬取还是比较有用的,但是一定会影响网页的加载速度。下面将以前写的一个爬虫爬到的数据直接展示到web网页上供大家参考。

    (1)php程序代码:<?PHP

    $output=exec('python test1.py');

    echo $output;

    ?>

    (2)python爬虫代码:import requests

    import json

    class WeatherSpider(object):

    def __inti__(self):

    pass

    def request(self,url):

    headers = {

    'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',

    'Referer': 'http://www.weather.com.cn/weather40d/101060201.shtml'

    }

    return requests.get(url,headers=headers)

    def create_url(self):

    year = '2016'

    for i in range(1,2):

    month = str(i) if i > 9 else "0" + str(i)

    url = "http://d1.weather.com.cn/calendar_new/" + year + "/101060201_" + year + month + ".html"

    self.get_data(url)

    def get_data(self,url):

    respone = self.request(url).content

    json_str = respone.decode(encoding='utf-8')[11:]

    weathers = json.loads(json_str)

    data = ""

    for weather in weathers:

    data = data+weather.get('date')+'星期'+weather.get('wk')+weather.get('hmax')+weather.get('hmin')+weather.get('hgl')+"
    "

    print (data)

    if __name__ == '__main__':

    jl_weather = WeatherSpider()

    jl_weather.create_url()

    (3)web网页爬虫展示:

    974c4ef878790f6841d2299b90a68489.png

    本文原创发布php中文网,转载请注明出处,感谢您的尊重!

    展开全文
  • 突然发现已经有一个半月多的时间没有在简书上写...好了,不提这些感悟性的言语了,几个月前,我在简书上注册用户的目的很简单,就是为了来这里学习Python和分享在Python编程的乐趣,在这几个月的时间了,写过的这点...

    突然发现已经有一个半月多的时间没有在简书上写点东西了!最近身边发生的事情比较多,要处理的事情也很多,工作上的、生活中的、琐碎的、零散的、好的、坏的以及该来的和不该来的......。也许、大概、有可能这些就是生活给我们带来的羁绊与牵挂吧!好了,不提这些感悟性的言语了,几个月前,我在简书上注册用户的目的很简单,就是为了来这里学习Python和分享在Python编程的乐趣,在这几个月的时间了,写过的这点东西也都是和Python有关的,Python网络爬虫、Python树莓派编程。

    796003e61728

    Programming Languages

    今天要和大家分享的是在PHP程序中调用执行Python脚本,起初是为了实现一个小需求,想要在JQuery执行的AJAX异步请求时在服务器端调用执行Python脚本。而Windows服务器端部署的WEB环境是Apache+PHP,在AJAX异步请求时根本不能直接调用Python脚本,因为web开发语言是php而非Python的Django和Flask等开发框架。AJAX是可以调用执行服务器端的脚本文件,但它的本质仍是HTTP的请求。所以就只能在HTTP请求中想办法调用Python脚本,也就在PHP程序中调用执行python脚本。这里就要用到PHP的内置函数exec() 和system() ;

    1.PHP的exec() 和system() 函数区别:

    (1)system()

    原型:string system (string command [, int return_var])

    system()函数很其它语言中的差不多,它执行给定的命令,输出和返回结果。

    (2)exec()

    原型:string exec (string command [, string array [, int return_var]])

    exec ()函数与system()类似,也执行给定的命令,但不输出结果,而是返回结果的最后一行。

    可以看出两个函数的区别就是PHP在调用执行外部命令后,system()函数将执行的结果输出并返回给PHP程序。而 exec() 函数在调用执行外部命令后不会将结果输出,只是返回结果。

    2.程序代码实现和对比:

    (1)in.php程序使用exec()函数代码及解析:

    796003e61728

    in.php代码

    (2)test.py程序代码:

    796003e61728

    test.py程序代码

    (3)PHP程序执行后效果1:

    796003e61728

    调用test.py的执行结果.png

    这样就利用exec()函数实现了对python脚本的调用,下面说一下将in.php程序中的exec()函数替换成system()函数后的执行效果。

    (4)in.php程序使用system()函数代码及解析:

    796003e61728

    php中使用system函数

    (5)PHP程序执行后效果2:

    796003e61728

    system函数的执行结果

    可以看出使用system()函数时,执行python程序时不但返回结果,而且将结果输出了,而exec()函数只是返回结果,没有输出。

    3.扩展应用:(php web开发数据调用)

    想要在网页上显示其它网站上的数据内容时,都需要网站提供数据的调用接口直接调用,如果没有接口,就需要用爬虫将数据爬回来后保存到数据库,在用程序从数据库中取出数据展示出来。(当然也可以用到php的curl库进行数据爬取后进行展示,但是个人认为在编程语言中做爬虫最简单并且强大的还是Python),而如果在PHP程序中直接调用python脚本进行爬虫,然后再将数据展示到网页上,这样就可以省去插入数据到数据库和从数据库读取数据的过程,这种做法对一些实时数据的爬取还是比较有用的,但是一定会影响网页的加载速度。下面将以前写的一个爬虫爬到的数据直接展示到web网页上供大家参考。

    (1)php程序代码:

    <?PHP

    $output=exec('python test1.py');

    echo $output;

    ?>

    (2)python爬虫代码:

    import requests

    import json

    class WeatherSpider(object):

    def __inti__(self):

    pass

    def request(self,url):

    headers = {

    'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',

    'Referer': 'http://www.weather.com.cn/weather40d/101060201.shtml'

    }

    return requests.get(url,headers=headers)

    def create_url(self):

    year = '2016'

    for i in range(1,2):

    month = str(i) if i > 9 else "0" + str(i)

    url = "http://d1.weather.com.cn/calendar_new/" + year + "/101060201_" + year + month + ".html"

    self.get_data(url)

    def get_data(self,url):

    respone = self.request(url).content

    json_str = respone.decode(encoding='utf-8')[11:]

    weathers = json.loads(json_str)

    data = ""

    for weather in weathers:

    data = data+weather.get('date')+'星期'+weather.get('wk')+weather.get('hmax')+weather.get('hmin')+weather.get('hgl')+"
    "

    print (data)

    if __name__ == '__main__':

    jl_weather = WeatherSpider()

    jl_weather.create_url()

    (3)web网页爬虫展示:

    796003e61728

    爬虫数据web网页展示

    展开全文
  • 当我们写好Django项目后,需要在项目中利用Python脚本测试和调用数据时,我们可以使用一以下方法。 在Django项目下建立一个文件目录作为脚本代码环境,在其中创建py文件复制以下代码进去: import os if __name_...

    简介

    当我们写好Django项目后,需要在项目中利用Python脚本测试和调用数据时,我们可以使用一以下方法。

    在Django项目下建立一个文件目录作为脚本代码环境,在其中创建py文件复制以下代码进去:

    import os
    
    if __name__ == '__main__':
        # 加载Django环境,books_management_system是我的Django项目名称
        os.environ.setdefault("DJANGO_SETTINGS_MODULE", 'books_management_system.settings')
        # 引入Django模块
        import django
    
        # 初始化Django环境
        django.setup()
        # 从app当中导入models
        from lib import models
    
        # 调用操作,拿到数据库中的所有Book数据对象
        books = models.Books.objects.all()
        # 打印信息
        print(books)

    运行:

    <QuerySet [<Books: Books object (3)>, <Books: Books object (4)>, <Books: Books object (5)>, <Books: Books object (9)>, <Books: Books object (10)>, <Books: Books object (82140136)>]>

    Process finished with exit code 0

    可能出现错误

    错误信息:

    django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

    问题原因:

    导入django模块和从app中导入models时全局导入,应该在 if __name__ == '__main__': 测试函数下导入。

    解决办法:

    (详见上述代码)

    展开全文
  • 如果你想通过自己创建的python文件在django项目中使用django的models,那么就需要调用django的环境: import os if __name__ == '__main__': os.environ.setdefault("DJANGO_SETTINGS_MODULE", "BMS.settings") ...
  • Python脚本调用Django ORM import os if __name__ == '__main__': os.environ.setdefault("DJANGO_SETTINGS_MODULE", "BMS.settings") import django django.setup() from app.models import Book #引入也要...
  • 导入后,即可使用模块: import os if __name__ == '__main__': os.environ.setdefault("DJANGO_SETTINGS_MODULE", "BMS.settings") import django django.setup() from app01 import models books = mo...
  • 如何在Django项目中调用外部python脚本文件 前言:   最近两年进行了相对较多的使用python进行Web项目开发的练习,随着项目难度的不断提升,Web项目中需要嵌套大型算法。为了方便以后类似功能的实现,也给遇到类似...
  • 外部python脚本调用djangodjango项目根目录下创建py文件,它和manage.py是同级的 import os if name == “main”: # 设置django环境 os.environ.setdefault(“DJANGO_SETTINGS_MODULE”, “about_drf....
  • # 将项目路径添加到系统搜寻路径当中,查找方式为从当前脚本开始,找到要调用django项目的路径 sys.path.append(os.path.dirname(os.path.abspath(__file__))) # 设置项目的配置文件 不做修改的话就是 settings ...
  • I have a Python script a.py that prompts for a URL:url = input('URL: ')It uses modules to check headers for URL validity, takes the valid URL and downloads the first image from the webpage (URL) using...
  • 如题,python远程调用shell脚本,调起entegor进程以后,无法执行日志中输出中文的程序
  • os.environ.setdefault("DJANGO_SETTINGS_MODULE", "django_cookie.settings") import django django.setup() from app01 import models models.Book.objects.create( title='xxx', price=200, )
  • 外部python脚本调用django model

    千次阅读 2015-01-14 21:25:44
    然而,通常需要开发一个外部的脚本与这个网页工程的model打交道。本文讲诉一个简单的方法去实现,可能不是最好的方法,但毕竟是一个方法。 看如下一个简单的例子。可以按照自己的需要去修改,如果你愿意的话。这个...
  • 推荐学习链接:...import os import django os.environ.setdefault("DJANGO_SETTINGS_MODULE", "BMS.settings") django.setup() from app01.models import Book books = Book.objects.all() print(books)
  • import django from datetime import * import pandas as pd import os (这两句要放在import models前) os.environ.setdefault(“DJANGO_SETTINGS_MODULE”, “mysite.settings”) django.setup() from shower....
  • Django 脚本调用Model类

    2020-08-03 16:53:07
    此脚步可以放在任意的App下面. import os import sys import django BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) print(BASE_DIR) sys.path.append(BASE_DIR) ...django.s
  • import os if __name__ == "__main__": os.environ.setdefault("DJANGO_SETTINGS_MODULE","orm_test.settings") import django django.setup()
  • 而数据库的连接信息一般都保存在Django的settings.py文件中,由此产生了怎样让python的独立脚本调用Django配置信息的问题。  使用Django框架中的方法: from django.conf import settings  单独运行脚本时...
  • django项目根目录下创建文件test_orm.py,它和manage.py是同级的 import os if __name__ == "__main__": # 设置django环境 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "项目名称.settings") ...
  • django中异步执行python脚本

    千次阅读 2019-05-26 20:36:51
    之前业务中需要根据前端的提交,用django在后端中跑某个脚本进行执行,因为执行时间较久,所以用的是异步,不知道什么是异步的可以先去研究django的异步执行框架celery,这里直接展示我的异步环境下执行Python脚本的...
  • 在项目根目录下新建脚本文件script.py import os if __name__ == '__main__': os.environ.setdefault("DJANGO_SETTINGS_MODULE", "BMS.settings") #加载项目环境,"BMS.settings"为项目配置文件 import ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,024
精华内容 5,209
关键字:

django调用python脚本

python 订阅